1. 程式人生 > >根據Android Uri獲取Bitmap物件實現

根據Android Uri獲取Bitmap物件實現

通常我們在選取圖片的時候在onActivityResult回撥中呼叫intent.getData()拿到uri物件。下面來講解如何根據這個uri獲取到Bitmap物件。

首先,在Android的API中有一個MediaStore.Images.Media類,這個類有一個getBitmap靜態方法用來根據Uri獲取到Bitmap的物件。方法有兩個引數。我們看到原始碼方法:

public static final Bitmap getBitmap(ContentResolver cr, Uri url) throws FileNotFoundException, IOException {
    throw new 
RuntimeException("Stub!"); }

第一個傳的是ContenProvider元件的ContentResolver物件,通常傳入的是Context物件的getContentResolver()方法;

第二個引數傳的就是我們提供的Uri資料。方法反回來就是Bitmap物件了。

程式碼例項:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        try {
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }