简单使用viewpager+handler实现图片的轮播
来源:互联网 发布:足彩分析软件app 编辑:程序博客网 时间:2024/05/29 15:18
简单的使用viewpager+handler实现图片的轮播 (图片是本地的,以数组的形式所写)
思路:-1.初始化控件 (UI中只使用了viewpager)
<android.support.v4.view.ViewPager android:id="@+id/my_ViewPager" android:layout_width="match_parent" android:layout_height="match_parent"/>
-2.数据源
-3.适配器
-4.使用handler发送消息
activity中的代码:
//手写handler方法public class MainActivity extends AppCompatActivity implements Handler.Callback{ private ViewPager mViewPager; private List<Fragment> data = new ArrayList<>(); private ImageAdapter adapter; //数据源 找了几张本地的图片 private int[] imager = new int[]{R.mipmap.a,R.mipmap.b,R.mipmap.c,R.mipmap.d,R.mipmap.e}; private int num = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); handler.sendEmptyMessageDelayed(100,2000); //适配器 adapter = new ImageAdapter(this,imager); mViewPager.setAdapter(adapter); //设置viewpager的点击事件 当手指按下的时候 停止轮播 mViewPager.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: handler.removeMessages(100); break; //当拿起手指的时候继续轮播 case MotionEvent.ACTION_UP: handler.sendEmptyMessageDelayed(100,2000); break; } return false; } }); } private void initView(){ mViewPager = ((ViewPager) findViewById(R.id.my_ViewPager)); } //使用handler每隔2秒发送一个空消息 注意handler的实现方法自己手写 private Handler handler = new Handler(this); @Override public boolean handleMessage(Message msg) { switch (msg.what){ case 100: mViewPager.setCurrentItem(num++); handler.sendEmptyMessageDelayed(100,2000); break; } return false; }}适配器中的代码:
public class ImageAdapter extends PagerAdapter { private Context context; private int[] imager = new int[]{R.mipmap.a,R.mipmap.b,R.mipmap.c,R.mipmap.d,R.mipmap.e}; public ImageAdapter(Context context, int[] imager) { this.context = context; this.imager = imager; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(context); imageView.setImageResource(imager[position%5]); imageView.setScaleType(ImageView.ScaleType.FIT_XY); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(((View) object)); }}
阅读全文
1 0
- 简单使用viewpager+handler实现图片的轮播
- Handler+viewPager实现图片轮播
- ViewPager + Handler 实现的图片自动轮播
- ViewPager+Handler实现图片自动轮播的效果
- 自定义ViewPager + Handler 实现的图片自动轮播
- 安卓:Handler实现图片轮播(非ViewPager)
- 使用ViewPager实现图片轮播
- Android使用ViewPager实现图片的轮播
- 通过RadioGroup 和ViewPager 以及Handler 实现图片的轮播
- Android ViewPager实现的图片轮播
- handler+viewpager无限轮播图片
- viewpager实现简单的轮播效果
- ViewPager实现图片轮播
- ViewPager实现图片轮播
- ViewPager实现图片轮播
- ViewPager实现图片轮播
- ViewPager实现图片轮播_简单版
- viewpager Handler 的无限轮播
- TCP3次握手连接协议和4次握手断开连接协议
- navicat for mysql注册激活
- c语言fopen函数的总结
- python
- Spring Boot 注解的意义以及作用
- 简单使用viewpager+handler实现图片的轮播
- windows下命令行使用的一些指令
- Celery使用快速入门
- 盘点客户管理软件应有的功能有哪些?
- JAVA学习笔记_cookie.setPath()_setDomain()跨域共享
- 1.1链表拓展题
- Typro & Markdown常见的基本用法
- Android PopupWindow弹窗
- SQLException之serverTimeZone