public class ShouyeFragment extends Fragment {// 声明定时器Handle private int flag = 0; // 标示viewpage 滑动到第几个item private static final int ANIMATION_TIMES = 2500;// 定时的时间间隔 private Handler myHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: souyouviewPager .setCurrentItem(flag = ((flag + 1) % fragments.length)); myHandler.sendEmptyMessageDelayed(0, ANIMATION_TIMES); break; default: break; } } }; // 声明ViewPager和LinearLayout private ViewPager souyouviewPager; private LinearLayout souyoulinearLayout; // 声明Fragment数组 private Fragment[] fragments; // 声明IMG数组 private ImageView[] imgs;public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); // 关联ViewPager的空间方法 initViewpager(); // ViewPager适配器 souyouviewPager.setAdapter(new MyViewpagerAdpater( getChildFragmentManager())); // ViewPager滑动监听 souyouviewPager .setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int arg0) { selectorDian(arg0); // 当监听到滑动时,从当前Item继续定时 flag = arg0; myHandler.removeMessages(0); myHandler.sendEmptyMessageDelayed(0, ANIMATION_TIMES); } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }); myHandler.sendEmptyMessageDelayed(0, ANIMATION_TIMES); } // 关联控件 private void initViewpager() { //关联子项 souyouviewPager = (ViewPager) getActivity() .findViewById(R.id.SYviewpager); souyoulinearLayout = (LinearLayout) getActivity().findViewById( R.id.souye_Viewpager_dian); int count = souyoulinearLayout.getChildCount(); imgs = new ImageView[count]; for (int i = 0; i < imgs.length; i++) { imgs[i] = (ImageView) souyoulinearLayout.getChildAt(i); } //声明Fragment数组 fragments = new Fragment[4]; fragments[0] = new SY_Fragment1(); fragments[1] = new SY_Fragment2(); fragments[2] = new SY_Fragment3(); fragments[3] = new SY_Fragment4(); for (int i = 0; i < imgs.length; i++) { //子项监听 imgs[i].setEnabled(true); imgs[i].setTag(i); imgs[i].setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { int item = (Integer) arg0.getTag(); souyouviewPager.setCurrentItem(item); selectorDian(item); flag = item; myHandler.removeMessages(0); myHandler.sendEmptyMessageDelayed(0, ANIMATION_TIMES); } }); } imgs[0].performClick(); } private void selectorDian(int index) { for (int i = 0; i < imgs.length; i++) { imgs[i].setBackgroundResource(R.drawable.dot1); imgs[i].setEnabled(true); //设为可选中 } imgs[index].setBackgroundResource(R.drawable.dot2); imgs[index].setEnabled(false); //设为不可选中 } //ViewPager适配器设置 class MyViewpagerAdpater extends FragmentPagerAdapter { public MyViewpagerAdpater(FragmentManager ftm) { super(ftm); } @Override public Fragment getItem(int arg0) { return fragments[arg0]; } @Override public int getCount() { return imgs.length; } } }在对应的布局文件中<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <android.support.v4.view.ViewPager android:id="@+id/SYviewpager" android:layout_width="match_parent" android:layout_height="150dp"/> <LinearLayout android:id="@+id/souye_Viewpager_dian" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="150dp" android:layout_marginTop="130dp" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </FrameLayout>效果图
图片自动变换
最新推荐文章于 2019-05-10 18:29:31 发布