Android应用实例之动态展示assets下图片

2014-11-24 12:02:42 · 作者: · 浏览: 2

实现的功能:在ImageView中动态(每隔0.1秒)展示assets下图片,所有图片播放完毕后再重新开始播放。


实现思路:


1)通过AssetManager获取assets下资源,使用BitmapFactory将图片资源输入流转换为Bitmap对象,然后将Bitmap对象设置到ImageView组件中。


关键技术点:AssetManager应用、Bitmap对象回收技术、Handler应用、多线程及线程的终止等。


第1步:新建一个工程,命名为DisplayImagesDemo,Activity命名为DisplayImagesActivity。


第2步:往assets下拷贝几张测试用图片,然后修改main.xml文件,代码如下:



第3步:修改DisplayImagesActivity,代码如下



备注1:


之所以如此处理是因为assets下除了图片资源还有images、sounds和webkit,打开onCreate下的displayAssets()方法,可以看到输出日志。


备注2:


如果系统频繁地去解析、创建Bitmap对象,可能由于前面创建的Bitmap所占用的内存还没有回收(手机系统本身的内容就比较小),而导致程序运行时引发OutOfMemory错误。


事实上,如果将备注2回收Bitmap对象的语句注释掉,图片动态展示若干张(视具体情况而定,我在模拟器里运行只展示了4张就挂掉了),错误日志为:


INFO/ActivityManager(73): Low Memory: No more background processes.


第4步:运行程序,效果如下: