當(dāng)Gallery應(yīng)用程序在用戶選擇圖像之后返回時,將調(diào)用onActivityResult方法。在傳遞到意圖的數(shù)據(jù)中,可以得到所選擇圖像的URI。
protected void onActivityResult(int requestCode, int resultCode,
Intent intent){
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
Uri imageFileUri = intent.getData();
由于返回的圖像可能太大而無法完全加載到內(nèi)存中,因此在加載圖像時將使用在第1章中介紹過的技術(shù)對其大小進行調(diào)整。整數(shù)dw和dh分別表示最大寬度和高度。最大高度小于屏幕高度的一半,因為最終將會以垂直對齊的方式顯示兩幅圖像。
Display currentDisplay = getWindowManager().getDefaultDisplay();
int dw = currentDisplay.getWidth();
int dh = currentDisplay.getHeight()/2 - 100;
try {
//加載圖像的尺寸而非圖像本身
BitmapFactory.Options bmpFactoryOptions =
new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeStream(getContentResolver().
openInputStream(imageFileUri), null, bmpFactoryOptions);
int heightRatio = (int)Math.ceil(bmpFactoryOptions.
outHeight/(float)dh);
int widthRatio = (int)Math.ceil(bmpFactoryOptions.
outWidth/(float)dw);