ViewPager定时切换
来源:互联网 发布:社会静力学知乎 编辑:程序博客网 时间:2024/06/05 20:04
不说废话,直接代码
1.首先将不能定时切换的代码写好,也就是普通的ViewPager,如下:
activity_main:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <FrameLayout android:layout_width="match_parent" android:layout_height="120dp" > <android.support.v4.view.ViewPager android:id="@+id/app_viewpager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" /> <LinearLayout android:id="@+id/ll_" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginBottom="10dp" android:gravity="center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/app_page1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:padding="15.0dip" android:src="@drawable/lv_dian" /> <ImageView android:id="@+id/app_page2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:padding="15.0dip" android:src="@drawable/hei_dian" /> <ImageView android:id="@+id/app_page3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="true" android:padding="15.0dip" android:src="@drawable/hei_dian" /> </LinearLayout> </FrameLayout> </LinearLayout>
ViewPager的第一个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="120dp" android:orientation="vertical" android:background="@drawable/banner1" ></LinearLayout>
ViewPager的第二个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="120dp" android:orientation="vertical" android:background="@drawable/banner2" ></LinearLayout>
ViewPager的第三个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="120dp" android:orientation="vertical" android:background="@drawable/banner3" ></LinearLayout>
MainActivity:
public class ViewPagerTest extends Activity implements OnClickListener { private Runnable viewpagerRunnable; private static Handler handler; private ViewPager app_viewPager; private ImageView app_page1; private ImageView app_page2; private ImageView app_page3; private int currrentPage = 0; private ArrayList<View> views; private LayoutInflater li; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏 // this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, // WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏 setContentView(R.layout.application_center); initView(); app_viewPager.setOnPageChangeListener(new MyOnPageChangeListener()); showDia(); handler = new Handler(); // 开启自动切换图片 initRunnable(); } // 初始化view public void initView() { app_viewPager = (ViewPager) findViewById(R.id.app_viewpager); app_page1 = (ImageView) findViewById(R.id.app_page1); app_page2 = (ImageView) findViewById(R.id.app_page2); app_page3 = (ImageView) findViewById(R.id.app_page3); li = LayoutInflater.from(this); views = new ArrayList<View>(); View view1 = li.inflate(R.layout.app_page1, null); View view2 = li.inflate(R.layout.app_page2, null); View view3 = li.inflate(R.layout.app_page3, null); views.add(view1); views.add(view2); views.add(view3); // ViewPager适配器 PagerAdapter pagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return views.size(); } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager) container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { ((ViewPager) container).addView(views.get(position)); return views.get(position); } }; app_viewPager.setAdapter(pagerAdapter); }// viewPager监听事件 public class MyOnPageChangeListener implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int status) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int arg0) { switch (arg0) { case 0: app_page1.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian)); app_page2.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); app_page3.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); break; case 1: app_page2.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian)); app_page1.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); app_page3.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); break; case 2: app_page3.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian)); app_page2.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); app_page1.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian)); break; } currrentPage = arg0; } } private static final int TIME = 2000; /** * 定时切换 */ protected void initRunnable() { viewpagerRunnable = new Runnable() { @Override public void run() { int nowIndex = app_viewPager.getCurrentItem(); int count = app_viewPager.getAdapter().getCount(); // 如果下一张的索引大于最后一张,则切换到第一张 if (nowIndex + 1 >= count) { app_viewPager.setCurrentItem(0); } else { app_viewPager.setCurrentItem(nowIndex + 1); } handler.postDelayed(viewpagerRunnable, TIME); } }; handler.postDelayed(viewpagerRunnable, TIME); }}
initRunnable就是定时切换的代码,以上图片自行解决,完结!
0 0
- ViewPager定时切换
- Android ViewPager的使用以及定时切换实现
- viewpager切换
- ViewPager实现页面切换
- ViewPager实现页面切换
- ViewPager实现页面切换
- ViewPager页面切换效果
- ViewPager滑动切换界面
- ViewPager 循环切换
- ViewPager的滑动切换
- 优化ViewPager切换效果
- ViewPager 滑动切换 activity
- ViewPager定时器切换图片
- viewpager 自动切换
- ViewPager自定义切换动画
- android: ViewPager Activity切换
- 自定义ViewPager切换动画
- ViewPager 切换报错
- Android 检测内存泄漏方法总结
- !DOCTYPE是文档说明
- 深度强化学习系列(二):强化学习基础
- LeetCode 304. Range Sum Query 2D - Immutable
- JAVA第一课知识点总结
- ViewPager定时切换
- Binder 通信笔记(Java)
- Disable Maven Nature
- nRF52832 GPIO
- Git快速入门
- 图解phpstorm常用快捷键
- Linux下python安装升级详细步骤 | Python2 升级 Python3
- net use访问远程电脑
- 2016年10月总结