Comment voulez-vous créer un transparent écran démo d'une application Android?

Je suis en train de créer une semi-transparent démo de l'écran qui est lancé uniquement lorsqu'un utilisateur installe mon application. Voici un exemple de l'Impulsion application de News:

Galaxy Nexus

Comment voulez-vous créer un transparent écran démo d'une application Android?

Nexus One

Comment voulez-vous créer un transparent écran démo d'une application Android?

Au lieu d'un "tap-to-rejeter de', je veux que l'utilisateur soit en mesure de passer à travers un couple de ces transparente des pages de démonstration.

Pour ma première tentative, j'ai modifié un échantillon de la ViewPagerIndicator de la bibliothèque. J'ai utilisé de la semi-transparence des Png dans ImageViews l'intérieur de chacun de la vue pager de fragments. J'ai ensuite lancé la présente comme une "démonstration de l'activité" dans la méthode onCreate de mon activité principale.

Problème: L'activité principale n'a pas pu être vu dans le fond - à la place, il était tout noir. J'ai essayé les solutions ici, mais qui n'a pas de résoudre le problème.

Est-il une meilleure approche de la création de quelque chose comme cela, ou suis-je sur la bonne voie?

J'avais aussi une autre question connexe, qui dépend de la façon dont cela est mis en œuvre. Je suis en train de superposition de texte et les flèches tels qu'ils pointent en particulier les composants de l'INTERFACE utilisateur dans l'arrière-plan. En utilisant une image PNG qui a le texte et les flèches, il est probable qu'il ne sera pas à l'échelle correctement sur différents appareils. I. e., les flèches ne peuvent pas nécessairement le point de le bon composant de l'INTERFACE utilisateur dans l'arrière-plan. Est-il un moyen de remédier à ce problème?

Merci!

Voici mon code pour la première tentative:

DemoActivity.java

public class DemoActivity extends FragmentActivity {
    DemoFragmentAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.demo_activity);

        mAdapter = new DemoFragmentAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        //mPager.setAlpha(0);

        UnderlinePageIndicator indicator = (UnderlinePageIndicator)findViewById(R.id.indicator);
        indicator.setViewPager(mPager);
        indicator.setFades(false);
        mIndicator = indicator;
    }

}

DemoFragmentAdapter.java

class DemoFragmentAdapter extends FragmentPagerAdapter {
    protected static final int[] CONTENT = new int[] { R.drawable.demo1, R.drawable.demo2, R.drawable.demo3, R.drawable.demo4};

    private int mCount = CONTENT.length;

    public DemoFragmentAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        return DemoFragment.newInstance(CONTENT[position % CONTENT.length]);
    }

    @Override
    public int getCount() {
        return mCount;
    }

    public void setCount(int count) {
        if (count > 0 && count <= 10) {
            mCount = count;
            notifyDataSetChanged();
        }
    } }

DemoFragment.java

public final class DemoFragment extends Fragment {
    private static final String KEY_CONTENT = "TestFragment:Content";

    public static DemoFragment newInstance(int content) {
        DemoFragment fragment = new DemoFragment();
        fragment.mContent = content;
        return fragment;
    }

    private int mContent;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if ((savedInstanceState != null) && savedInstanceState.containsKey(KEY_CONTENT)) {
            mContent = savedInstanceState.getInt(KEY_CONTENT);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        ImageView image = new ImageView(getActivity());
        image.setBackgroundResource(mContent);

        LinearLayout layout = new LinearLayout(getActivity());
        layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        layout.setGravity(Gravity.CENTER);
        layout.addView(image);

        return layout;
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(KEY_CONTENT, mContent);
    }
}
  • Sans regarder ton code il est difficile de suggérer quoi que ce soit. Si vous pouviez mettre votre code d'activité, il pourrait aider.
  • juste de l'ajouter.
  • c'est une bonne Question.
InformationsquelleAutor Gautam | 2012-08-17