Android 获得图片的总结

来源:互联网 发布:知乎事业单位与国企 编辑:程序博客网 时间:2024/06/06 08:31
//1,已将图片保存到drawable目录下  02    03 //通过图片id获得Drawable  04    05 Resource res=gerResource();  06 Drawable drawable=res.getDrawable(id);//id为R.drawable.图片名称  07    08 //通过图片id获得Bitmap  09    10 Resource res=gerResource();  11    12 Bitmap bitmap=BitmapFactory.decodeResource(res, id);  13    14 //若只知道图片的名称,可以通过图片的名称获得图片的id  15    16 //name:图片的名称 defType:图片的类型(png,jpeg),defPackage:工程的包名  17 int id =int id =res.getIdentifier(name, defType, defPackage);  18 //获得id之后可以根据你的需要来获得Bitmap或Drawable  19    20 //2,已将图片保存到assest目录下  21    22 //知道图片的名称,通过inputstream打开图片  23    24 AssetManager asm=activity.getResources().getAssets();25 InputStream is=asm.open(name);//name:图片的名称  26 //获得Drawable  27 Drawable da = Drawable.createFromStream(is, null);  28 //获得Bitmap  29 Bitmap bitmap=BitmapFactory.decodeStream(is);  30    31 //3,图片保存在sdcard,已知图片的路径  32    33 //图片路径  34 String path = Environment.getExternalStorageDirectory().toString()+ "/DCIM/device.png";  35 RandomAccessFile mMiniThumbFile;  36 File imgfile = new File(path);  37 try {  38     mMiniThumbFile = new RandomAccessFile(imgfile, "rw");  39 } catch (IOException ex) {  40 // Open as read-only so we can at least read the existing  41 // thumbnails.  42 try {  43 mMiniThumbFile = new RandomAccessFile(imgfile, "r");  44 } catch (IOException ex2) {  45 // ignore exception  46 System.out.println(ex2.toString());  47 }  48 }  49 data= new byte[10553];  50 try {  51 mMiniThumbFile.seek(0);  52 int got = mMiniThumbFile.read(data, 0, 10552);  53 System.out.println("got="+got);  54 } catch (IOException e) {  55 // TODO Auto-generated catch block  56 e.printStackTrace();  57 System.out.println(e.toString());  58 }  59 if (data != null) {  60 //通过data获得bitmap  61 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,data.length); 


建议使用随机读写文件流,可以防止读取的文件流过大而导致内存溢出