android 獲取相冊圖片及路徑

首先是相冊圖片的獲取:android

private final String IMAGE_TYPE = "image/*";數據庫

private final int IMAGE_CODE = 0; //這裏的IMAGE_CODE是本身任意定義的ide

//使用intent調用系統提供的相冊功能,使用startActivityForResult是爲了獲取用戶選擇的圖片索引

Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);接口

getAlbum.setType(IMAGE_TYPE);圖片

startActivityForResult(getAlbum, IMAGE_CODE);文檔

//重寫onActivityResult以得到你須要的信息get

@Overrideit

protected void onActivityResult(int requestCode, int resultCode, Intent data){io

if (resultCode != RESULT_OK) { //此處的 RESULT_OK 是系統自定義得一個常量

Log.e(TAG,"ActivityResult resultCode error");

return;

}

Bitmap bm = null;

//外界的程序訪問ContentProvider所提供數據 能夠經過ContentResolver接口

ContentResolver resolver = getContentResolver();

//此處的用於判斷接收的Activity是否是你想要的那個

if (requestCode == IMAGE_CODE) {

try {

Uri originalUri = data.getData(); //得到圖片的uri

bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); //顯獲得bitmap圖片

這裏開始的第二部分,獲取圖片的路徑:

String[] proj = {MediaStore.Images.Media.DATA};

//好像是android多媒體數據庫的封裝接口,具體的看Android文檔

Cursor cursor = managedQuery(originalUri, proj, null, null, null);

//按我我的理解 這個是得到用戶選擇的圖片的索引值

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

//將光標移至開頭 ,這個很重要,不當心很容易引發越界

cursor.moveToFirst();

//最後根據索引值獲取圖片路徑

String path = cursor.getString(column_index);

}catch (IOException e) {

Log.e(TAG,e.toString());

}

}

}

相關文章
相關標籤/搜索