2010-12-06 30 views
2

我正在編寫一個使用Intent(MediaStore.ACTION_IMAGE_CAPTURE)捕獲圖像的應用程序。在捕獲圖像的過程中,我注意到了圖像URI的輸出。完成相機活動後,我希望使用此特定URI顯示圖像。使用URI在活動中顯示圖像

我用來捕捉圖像的方法是:

private void saveFullImage() { 
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File file = new File(Environment.getExternalStorageDirectory(), 
         "test.jpg"); 
    outputFileUri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
    startActivityForResult(intent, TAKE_PICTURE); 
} 

這是從雷託·梅爾的書專業的Android 2應用開發採取的方法。

該方法工作正常,我假設我剛剛拍攝的圖片的URI存儲在outputFileUri變量中。然後在這一點的代碼是我想要顯示的圖片:

@Override 
protected void onActivityResult(int requestCode, 
           int resultCode, Intent data) { 
    if (requestCode == TAKE_PICTURE) { 

     //I want to display the picture I just took here 
     //using the URI 

    } 
} 

我不知道該怎麼做。

我嘗試使用方法setImageURI(outputFileUri)創建一個新的佈局對象和一個新的ImageView對象。我的主佈局(xml)沒有ImageView對象。但即使當我將contentView設置爲附加了ImageView的新佈局時,它也不會顯示任何內容。我試圖從URI創建一個Bitmap對象並將其設置爲ImageView,但我得到一個意外的錯誤並強制退出。

我看過這裏的例子here它從URI創建一個位圖,但它不顯示它?

我的問題是如何在正在運行的活動中顯示圖像?我是否需要獲取文件路徑(如this)才能顯示它?如果我從URI中創建一個位圖,如何顯示位圖?

我只是可能缺少一些簡單的...所以任何幫助將是一個非常感謝!

另外還有一個值得思考的問題:如果我要拍多張照片,你會推薦我使用SimpleCursorAdapter嗎?

謝謝!

回答

0
  1. 您創建一個Bitmap出URI
  2. 的創建BitmapDrawable的傳入位圖的新實例
  3. 您添加BitmapDrawable到窗口(setBackgroundDrawable), 視圖(setBackgroundDrawable)]或ImageView的(setImageDrawable)
+0

好了,會嘗試很快回到這裏獲得滿意的結果。謝謝。 – evkwan 2010-12-06 03:33:11

0

這裏做的正確方法:

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) 
    { 
     Uri imageUri = data.getData(); 
     Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri); 
     } 
    } 
} 
相關問題