1
我想在viewPager
(ViewPager
的每個頁面有不同的動畫)中以非常簡單的動畫形式顯示一些圖像。 我ViewPager
代碼:如何在Android的viewPager的每個頁面顯示/啓動動畫?
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
與點擊/滾動每一頁,其動畫開始呢?
我創建了'public static boolean anim_started = false;''在片段類。我應該在哪裏放「if」方法並檢查它的值? –
沒有得到你真正的問題。每個片段中的每個動畫都是正確的。如果是anims會加載碎片內,那麼你將不會有一個箴言..是你做什麼或別的..如果你想用布爾,並避免加載下一個,直到動物結束,但它不是用戶友好 –
我覺得我的答案! 'animation.setOneShot(true);'必須刪除。 –