博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Android读取不同位置(drawable,asset,SDCard)的图片资源的总结
阅读量:6903 次
发布时间:2019-06-27

本文共 1276 字,大约阅读时间需要 4 分钟。

方式一:

已将图片保存到drawable目录下,通过图片id获得Drawable或者Bitmap,此方式最常用。(若只知道图片的名称,还可以通过图片的名称获得图片的id)

(1)通过图片id获得Drawable

Drawable drawable=getResource().getDrawable(R.drawable.xxx);

(2)通过图片id获得Bitmap

Resource res=gerResource();

Bitmap bitmap=BitmapFactory.decodeResource(res, id);

(3)通过图片的名称获得图片的id(两种方法)

 int id =res.getIdentifier(name, defType, defPackage); //name:图片的名,defType:资源类型(drawable,string。。。),defPackage:工程的包名

Drawable drawable=getResource().getDrawable(id);

 

方式二:

已将图片保存到assest目录下,知道图片的名称,通过inputstream获得图片Drawabl

或者 Bitmap

AssetManager asm=getAssetMg();

InputStream is=asm.open(name);//name:图片的名称

(1)获得Drawable

Drawable da = Drawable.createFromStream(is, null);

(2)获得Bitmap

Bitmap bitmap=BitmapFactory.decodeStream(is);

 

方式三: 图片保存在sdcard,通过图片的路径h

/图片路径

String imgFilePath = Environment.getExternalStorageDirectory().toString()
+ “/DCIM/device.png”;

(1)文件输入流

fis = new FileInputStream(new File(imgFilePath));//文件输入流

Bitmap bmp = BitmapFactory.decodeStream(fis);

(2)

ImageView iv = (ImageView) findViewById(R.id.image);   

Bitmap bit = BitmapFactory.decodeFile("/sdcard/.bmp");      
iv.setImageBitmap(bit);

 

setImageDrawable方法传入参数是图片的绝对路径,所以直接将图片所在路径直接写入就可以显示了

iv.setImageDrawable(Drawable.createFromPath(new File(Environment.getExternalStorageDirectory(), "camera.jpg").getAbsolutePath()));

 

转载地址:http://jmldl.baihongyu.com/

你可能感兴趣的文章
js-jquery-SweetAlert【二】配置方法
查看>>
反向传播公式
查看>>
轻松学习Ionic (二) 为Android项目集成Crosswalk(更新官方命令行工具)
查看>>
c 变量的存储类型auto等(基础知识)和c函数变量
查看>>
树莓派的GPIO编程
查看>>
sql server 2008如何导入mdf,ldf文件
查看>>
让Asp.Net WebAPI支持OData查询,排序,过滤。(转)
查看>>
在centos中安装mangodb
查看>>
Windows Dos命令下查看端口号,杀死端口
查看>>
VS------csc.exe已停止工作解决方法
查看>>
PHP mysql_fetch_array与mysql_fetch_row的区别
查看>>
Python ORM框架之 Peewee入门
查看>>
Windows版Mycat结合mysql安装配置+水平切分(转载)
查看>>
CSS3 Flex布局整理(二)-容器属性
查看>>
第11章:sed进阶操作
查看>>
js获取单独一个checkbox是否被选中
查看>>
【工具】Sublime + MarkdownEditing + OmniMarkupPreviewer使用起来
查看>>
django Multi-table inheritance ---- 用于实现基表-子表
查看>>
关于Mac终端故障一直出现 [进程已完毕]
查看>>
带着问题学习分布式系统之数据分片
查看>>