【问题标题】:How show a animation on all fragments of a view pager in android?如何在android中的视图寻呼机的所有片段上显示动画?
【发布时间】:2014-12-09 22:19:04
【问题描述】:

我开发了一个带有 viewpager 的 android 应用程序(游戏),其中包含三个片段。 我有一个带有一些 ImageViews 的 TranslateAnimation,它显示“轮到你了,你可以玩”。目前我的动画只在一个片段上显示(如果这个词存在于英语中,我不会......?),如果我改变片段,动画会继续在同一个片段上进行,以便隐藏它。

我的问题是:如何在三个片段前面显示动画,以便当我更改片段时动画总是在这里?

我的 FragmentActivity 与我的 ViewPager :

public class Principal extends FragmentActivity {

private PagerAdapter mPagerAdapter;
private List<Fragment> fragments;
private ViewPager pager;

private AnimationMessage animAToiDeJouer;
private AnimationMessage animDevoileTesCartes;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.principal);
    DataModel.getInstance().setFragmentActivity(this);

    // Création de la liste de Fragments que fera défiler le PagerAdapter
    fragments = new Vector<Fragment>();

    // Ajout des Fragments dans la liste
    fragments.add(Fragment.instantiate(this,PageGaucheFragment.class.getName()));
    fragments.add(Fragment.instantiate(this,PageMilieuFragment.class.getName()));
    fragments.add(Fragment.instantiate(this,PageDroiteFragment.class.getName()));

    // Création de l'adapter qui s'occupera de l'affichage de la liste de Fragments
    this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);

    pager = (ViewPager) super.findViewById(R.id.viewpager);
    // Affectation de l'adapter au ViewPager
    pager.setAdapter(this.mPagerAdapter);
    pager.setOffscreenPageLimit(3);// Pour éviter de pb de disparition !!
    pager.setCurrentItem(1);

    ImageView atdj_bloc = (ImageView) findViewById(R.id.atdj_bloc);
    ImageView atdj_haut = (ImageView) findViewById(R.id.atdj_haut);
    ImageView atdj_bas = (ImageView) findViewById(R.id.atdj_bas);
    ImageView dtc_bloc = (ImageView) findViewById(R.id.dtc_bloc);
    ImageView dtc_haut = (ImageView) findViewById(R.id.dtc_barre_haut);
    ImageView dtc_bas = (ImageView) findViewById(R.id.dtc_barre_bas);

    animAToiDeJouer = new AnimationMessage(atdj_haut, atdj_bloc, atdj_bas);
    animDevoileTesCartes = new AnimationMessage(dtc_haut, dtc_bloc, dtc_bas);

}
...

还有 FragmentPagerAdapter :

public class MyPagerAdapter extends FragmentPagerAdapter {

private final List<Fragment> fragments;

//On fournit à l'adapter la liste des fragments à afficher
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
    super(fm);
    this.fragments = fragments;
}

@Override
public Fragment getItem(int position) {
    return (Fragment) this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}

}

希望你明白我想要什么,谢谢!

【问题讨论】:

    标签: android animation android-fragments android-viewpager translate-animation


    【解决方案1】:

    您可以使用 ViewFlipper 为图像视图设置动画

    https://stackoverflow.com/a/25729828/1557305

    【讨论】:

    • 感谢您的回复,但 PageTransformers 是片段之间的动画,不是吗?我的动画实际上是一个带有 ImageViews 的 TranslateAnimation,上面写着“轮到你了,你可以玩”
    • 好的,但是我的 ImageViews 已经动画了。问题是动画只显示在一个片段上,所以如果我更改片段,动画不在新的当前片段上(它隐藏在前一个片段上)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多