根據Android Uri獲取Bitmap物件實現
阿新 • • 發佈:2018-11-05
通常我們在選取圖片的時候在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 newRuntimeException("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(); } }