时间:2021-05-02
本文实例讲述了Android读取assets目录下的所有图片并显示的方法。分享给大家供大家参考。具体方法分析如下:
在assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets() 来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode) 方法则指定读取的文件以及访问模式就能得到输入流InputStream。
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close() 。
4.调用AssetManager.close() 关闭AssetManager。
需要注意的是,来自Resources和Assets 中的文件只可以读取而不能进行写的操作。
下面看一下在Activity中使用的示例代码:
这样所有的map中的关键字“iv"处理论上就保存了我们读取的bitmap,可以结果并非如此,大家应该注意到了在”bg“关键字处我们也保存了一个图片,只不过它是通过R.drawable.方式获取的,实验证明这种方式是可以成功读取并显示的。为什么从assets中读取的bitmap不能显示呢?
解决办法是:
实现 ViewBinder接口,对两种的资源id和bitmap 情况进行说明:
复制代码 代码如下: adapter.setViewBinder(new ViewBinder() {
这样就可以了。
还有一种情况是,我们在非Activity类中读取assets文件下的内容,这个时候就得把调用者(Activity类)的context传递过去,然后在这个非Activity类中使用context.getAssets()方式调用就行了。
举个简单例子:
我们有一个HomeActivity,然后我们它里面调用GetData.initdata(HomeActivity.this).
在GetData类的initdata方法肯定是这样定义的:
因为getAssets方法是Context下的方法,在非Activity类中是不能直接使用的。
希望本文所述对大家的Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android加载assets资源在android中,如何加载assets目录下的文件夹呢?方法很简单,使用AssetManager,即AssetManager
android读取assets文件下的内容,一般都是使用getAsset.open()方法,并将文件的路径作为参数传入,而当我们解析一个目录下的文件时需要对其进
本文实例讲述了Android开发实现读取assets目录下db文件的方法。分享给大家供大家参考,具体如下:最近准备打算写一个关于天气预报的app,偶然的机会在一
java递归读取目录下的所有文件(包含子目录下的所有文件)大概思路如下:通过file.listFiles()方法获取目录下的所有文件(包含子目录下的所有文件),
vue-cli项目中本地图片放在assets目录下(原因vue-cli最开始的vue图片就在里面,就把所有图片放在里面了);之后v-for动态加载图片路径就遇到