android ViewPager 简单多线程加载本地图片
来源:互联网 发布:知乎 dota2 编辑:程序博客网 时间:2024/05/17 02:04
在自己做一个简单的APP过程中,使用了ViewPager这一部件来实现图片轮播,在轮播过程中出现了很多问题,比如说掉帧的问题,也就是在加载图片时UI进程做了太多的操作导致skip.接下来就来探讨一下这个问题
//将图片装载到数组中,这里新开了一个数组用来存,到最后addAll到一个static数组进行操作,如果不这样做将会出现空指针错误。 new Thread() { public void run() { ImageView imageView1 = new ImageView(MainActivity.this); ImageView imageView2 = new ImageView(MainActivity.this); ImageView imageView3 = new ImageView(MainActivity.this); ImageView imageView4 = new ImageView(MainActivity.this); ArrayList<ImageView> mmImageViews = new ArrayList<>(); imageView1.setBackgroundResource(imgIdArray[0]); mmImageViews.add(imageView1); imageView2.setBackgroundResource(imgIdArray[1]); mmImageViews.add(imageView2); imageView3.setBackgroundResource(imgIdArray[2]); mmImageViews.add(imageView3); imageView4.setBackgroundResource(imgIdArray[3]); mmImageViews.add(imageView4); mImageViews.addAll(mmImageViews); Message msg = new Message(); msg.what = 0; mHandler.sendMessage(msg); } }.start();
//实现Handle机制,在这里刷新UI public Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: viewPager.setAdapter(pageradapter); //设置ViewPager的默认项, 设置为长度的100倍,这样子开始就能往左滑动 viewPager.setCurrentItem((mImageViews.size()) * 100); viewPager.setOnPageChangeListener(MainActivity.this); break; case 1: listView = (ListView) findViewById(R.id.listview); list_Adapter myListAdapter = new list_Adapter(MainActivity.this, informations); listView.setOnItemClickListener(MainActivity.this); listView.setAdapter(myListAdapter); default: break; } super.handleMessage(msg); } };
总结:
开始的时候报空指针错误是因为没有把刷新UI放到Handle里而且没有子线程中获取的数组没有通过static数组传递出来,这样直接使用时就会报空指针错误。
1 0
- android ViewPager 简单多线程加载本地图片
- ViewPager动态加载本地图片
- android加载本地图片
- android 多线程 图片:加载
- Android webview加载本地图片
- android 本地图片加载器
- Android 本地图片加载器
- Android webview加载本地图片
- Android listview加载本地图片
- android Fresco加载本地图片
- ListView GridView ViewPager 异步 加载网络图片 缓存到本地
- Android加载器加载本地图片
- android listview viewpager 异步加载图片 headerview
- android轮播图,viewpager加载广告图片
- ViewPager读取本地图片
- ViewPager + Volley 异步多线程图片加载实现Banner效果
- Android 中网络图片加载(包括本地图片的加载) 框架 universal image loader 的简单使用
- android图片异步加载到本地
- fork vfork clone
- 排序算法之快速排序的思想以及Java实现
- RecylerView使用详解(分享整理)
- ubuntu16.04 实现SVN与WEB同步解决方案
- 新浪微博加号按钮动画实现方案
- android ViewPager 简单多线程加载本地图片
- c++之STL(13) STL 算法 - 查找算法(7)lower_bound() upper_bound() equal_range(0
- flex 对datagrid列表添加图片文本 itemRender
- 【学习笔记】比较符与equals
- 【NOIP2011模拟9.7】射命丸文
- HDU5835 Danganronpa(简单推理)
- sqserver数据库导入到mysql
- STM8 设置系统时钟
- 正则表达式速查表