Android中利用Drawable实现图片循环
来源:互联网 发布:电商 双十一 实时数据 编辑:程序博客网 时间:2024/05/22 16:46
通过使用Drawable来获取存储在assets目录下的图片实现:
1. 获取AssetManager
2. 创建数组并将获取到文件名存放到数组中
3. 读取图片文件
4. 打开图片的输入流
5. 从输入流中读取并改变图片
6. 回收图片
步骤:
1.在布局中加入一个ImageView
2.在代码文件中进行读取
- 代码文件
public class MainActivity extends Activity{ String[] images = null; AssetManager assets = null; int currentImg = 0; ImageView image; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); image = (ImageView) findViewById(R.id.image); try { assets = getAssets(); // 获取/assets/目录下所有文件 images = assets.list(""); } catch (IOException e) { e.printStackTrace(); } // 获取next按钮 final Button next = (Button) findViewById(R.id.next); // 为next按钮绑定事件监听器,该监听器将会查看下一张图片 next.setOnClickListener(new OnClickListener() { @Override public void onClick(View sources) { // 如果发生数组越界 if (currentImg >= images.length) { currentImg = 0; } // 找到下一个图片文件 while (!images[currentImg].endsWith(".png") && !images[currentImg].endsWith(".jpg") && !images[currentImg].endsWith(".gif")) { currentImg++; // 如果已发生数组越界 if (currentImg >= images.length) { currentImg = 0; } } InputStream assetFile = null; try { // 打开指定资源对应的输入流 assetFile = assets.open(images[currentImg++]); } catch (IOException e) { e.printStackTrace(); } BitmapDrawable bitmapDrawable = (BitmapDrawable) image.getDrawable(); // 如果图片还未回收,先强制回收该图片 if (bitmapDrawable != null&& !bitmapDrawable.getBitmap().isRecycled()) { bitmapDrawable.getBitmap().recycle(); } // 改变ImageView显示的图片 image.setImageBitmap(BitmapFactory.decodeStream(assetFile)); } }); }}
0 0
- Android中利用Drawable实现图片循环
- 利用两个视图实现图片循环利用
- 利用android开源库android-gif-drawable加载gif格式图片
- [Android]反射读取drawable中图片
- Android中动态获取Drawable中的图片
- Android中无法引用drawable中的图片
- android studio中使用android-gif-drawable开源项目实现gif图片的显示
- android中利用animation实现Image的循环移动
- 利用ViewPager实现图片循环滚动
- 利用ViewPager实现图片循环滚动
- 利用ViewPager实现图片循环滚动
- 利用Drawable生成圆形图片
- Android实现图片循环播放
- 利用Bitmap实现图片放大效果(项目中的drawable路径图片,内存卡中的图片)
- Android中利用Matrix实现图片平移、缩放和旋转
- Android中利用Handler实现图片轮播 ,示例+ 代码
- Android中利用Picasso实现图片压缩指定任意尺寸
- Android Drawable 实现圆形,方形圆角图片
- 11. Container With Most Water
- 手把手教你安装Hbase,一次成功!
- 复杂单链表的复制
- http详解之telnet
- Android 语音识别
- Android中利用Drawable实现图片循环
- Merge OUTPUT 高级用法综合写的一个MergeTab的存储过程
- SDM 环境配置
- redis-trib.rb: command not found
- [C/C++] 显示各种C/C++编译器的预定义宏(C11标准、C++11标准、VC、BCB、Intel、GCC)
- java程序性能优化学习笔记day1
- javascript练习题(三)
- 8.Maximum Depth of Binary Tree
- ARM开发工具软件命令详解---嵌入式回归第三篇