关于android 获得 图片的方式

来源:互联网 发布:javascript登录页面 编辑:程序博客网 时间:2024/05/17 02:42

1,已将图片保存到drawable目录下 

    

通过图片id获得Drawable

Resource res=gerResource(); 
        Drawable drawable=res.getDrawable(id);     //id为R.drawable.图片名称


通过图片id获得Bitmap

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


若只知道图片的名称,可以通过图片的名称获得图片的id

//name:图片的名称 defType:图片的类型(png,jpeg),defPackage:工程的包名 

// 一般  defType  用"drawable"
       int id =res.getIdentifier(name, defType, defPackage); 
      获得id之后可以根据你的需要来获得Bitmap或Drawable


2,已将图片保存到assest目录下


 知道图片的名称,通过inputstream打开图片

AssetManager asm=getAssetMg(); 

InputStream is=asm.open(name);//name:图片的名称 
       //获得Drawable 
      Drawable da = Drawable.createFromStream(is, null); 
     //获得Bitmap 
       Bitmap bitmap=BitmapFactory.decodeStream(is);



3,图片保存在sdcard,已知图片的路径


//图片路径 
       String path = Environment.getExternalStorageDirectory().toString() + "/DCIM/device.png"; 
         RandomAccessFile mMiniThumbFile; 
          File imgfile = new File(path); 
        try { 
             mMiniThumbFile = new RandomAccessFile(imgfile, "rw"); 
            } catch (IOException ex) { 
           // Open as read-only so we can at least read the existing 
         // thumbnails. 
         try { 
          mMiniThumbFile = new RandomAccessFile(imgfile, "r"); 
           } catch (IOException ex2) { 
           // ignore exception 
System.out.println(ex2.toString()); 


data= new byte[10553]; 
try { 
mMiniThumbFile.seek(0); 
int got = mMiniThumbFile.read(data, 0, 10552); 
System.out.println("got="+got); 
} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
System.out.println(e.toString()); 

if (data != null) { 
//通过data获得bitmap 
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, 
data.length);