近日做到从内存卡读取图片的功能,在此,对获取图片资源的方法稍作总结: 方式一: 已将图片保存到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 (2)获得Bitmap
方式三: 图片保存在sdcard,通过图片的路径h /图片路径 (1)文件输入流 fis = new FileInputStream(new File(imgFilePath));//文件输入流 Bitmap bmp = BitmapFactory.decodeStream(fis); (2) ImageView iv = (ImageView) findViewById(R.id.image);
iv.setImageDrawable(Drawable.createFromPath(new File(Environment.getExternalStorageDirectory(), "camera.jpg").getAbsolutePath()));
|
|