Я хочу показать несколько изображений как очень простую анимацию в viewPager
(каждая страница ViewPager
имеет другую анимацию). Мой ViewPager
код:Как показать/запустить анимацию на каждой странице viewPager в android?
public class Sport2Activity extends AppCompatActivity {
private SectionsPagerAdapter mSectionsPagerAdapter;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sport1);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
// tab layout for circle of view pager
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabDots);
tabLayout.setupWithViewPager(mViewPager);
}
//********Adapter class*********************************************************
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new EyeSportFragment();
//return FragmentWithOneImage.newInstance("Fragment 1", R.drawable.android_1);
case 1:
return new FingerSportFragment();
case 2:
return new NeckSportFinger();
case 3:
return new WristSportFragment();
case 4:
return new ShoulderSportFragment();
case 5:
return new BackSportFragment();
case 6:
return new WaterFragment();
default:
return null;
}
}
@Override
public int getCount() { // Show 3 total pages.
return 7;
}
и анимация класс:
public class BackSportFragment extends Fragment {
private ImageView sportShowing_img;
public BackSportFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_sport_show, container, false);
sportShowing_img= (ImageView) view.findViewById(R.id.sport_img);
AnimationDrawable animation = new AnimationDrawable();
animation.addFrame(getResources().getDrawable(R.drawable.ic_action_hardware_keyboard_arrow_left), 1000); //1 Sec
animation.addFrame(getResources().getDrawable(R.drawable.ic_action_action_home), 1000); //1 Sec
animation.addFrame(getResources().getDrawable(R.drawable.cast_ic_notification_1), 1000); //1 Sec
animation.addFrame(getResources().getDrawable(R.drawable.common_google_signin_btn_icon_light), 1000); //1 Sec
animation.setOneShot(true);
sportShowing_img.setBackgroundDrawable(animation);
animation.start();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
sportShowing_img.setVisibility(View.INVISIBLE);
}
}, 10000);
return view;
}
}
, как я могу сделать ViewPager
, что с щелчком/прокрутки на каждой странице, ее анимации пусков?
i create 'public static boolean anim_started = false;' в классе Фрагментов. где я должен положить метод 'if' и проверить его значение? –
не получил вашу настоящую проблему. у вас есть каждая анимация в каждом фрагменте справа.? если да, то анимации будут загружаться внутри фрагментов, тогда у вас не будет prblem .. это то, что вы делаете или что-то еще. Если вы хотите использовать bool и avoild, загрузите следующий, пока анимация не закончится, но она не будет удобна для пользователя. –
i find мой ответ! 'animation.setOneShot (true);' должен удалить. –