2016-04-21 25 views
1

我不能讓我的ImageViews從任一URI或文件路徑更新填充 - 他們只是不顯示圖像ImageView的不是從文件路徑

意圖捕捉圖像:

Intent photo = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(photo, 1); 

在ActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    super.onActivityResult(requestCode, resultCode, data); 
    Uri imageUri = data.getData(); 
    filePath = getRealPathFromURI(this, imageUri); 
} 

GetRealPathFromURI類:

public String getRealPathFromURI(Context context, Uri contentUri) { 
    Cursor cursor = null; 
    try { 
     String[] proj = { MediaStore.Images.Media.DATA }; 
     cursor = context.getContentResolver().query(contentUri, proj, null, null, null); 
     int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } finally { 
     if (cursor != null) { 
      cursor.close(); 
     } 
    } 
} 

然後它插入到一個數據庫

從數據庫中檢索和更新ImageViews

imgfilepath[y] = cursorc.getString(cursorc.getColumnIndex("IMAGE")); 
imgFile[y] = new File(imgfilepath[y]); 
Uri uri = Uri.fromFile(imgFile[y]); 
String path = uri.getPath(); 
mImage.setImageURI(uri); 

「文件路徑」從onActivityResult我已經嘗試了許多不同的方法來setImageBitmap等,這都沒有奏效(我無法記住所有這些) - 任何人都可以看到爲什麼這不顯示圖像?

圖像存儲在模擬存儲器中,而不是SD卡。

編輯:

我添加EXTRA_OUTPUT標籤,但我不能看到DDMS圖像的任何地方&相機確實拍照/接受圖像

Intent photo = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
final File root = new File(Environment.getExternalStorageDirectory() + File.separator + "MyDir" + File.separator); 
      root.mkdirs(); 
      final String fname = "img_"+ System.currentTimeMillis() + ".jpg"; 
      final File sdImageMainDirectory = new File(root, fname); 
      mImageUri = Uri.fromFile(sdImageMainDirectory); 
      photo.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri); 
      startActivityForResult(photo, 1); 

回答

1
Uri imageUri = data.getData(); 
後不會退出

ACTION_IMAGE_CAPTURE不返回Uri

的圖像是在仿真的存儲

也許是一個攝像頭應用程序確實,在這種情況下相機的應用程序有一個bug,沿着與返回-A- Uri錯誤去。

有成千上萬的Android設備型號。這些應用程序預裝了數百種不同的相機應用程序,Play商店和其他地方還提供了數百種相機應用程序。許多將有ACTION_IMAGE_CAPTURE實現。大多數應該遵循the documented protocol。沒有人應該爲您的請求保存圖像,因爲您沒有告訴相機應用程序保存圖像的位置。

或者:

  • 提供一個位置,通過EXTRA_OUTPUT,相機應用程序保存圖像,然後從該位置加載圖像,或

  • 使用data.getExtra("data")獲得Bitmap如果你不提供EXTRA_OUTPUT

+0

因爲我已經實現了EXTRA_OUTPUT,所以凸輪時代不允許我確認圖片,只取消或重拍。勾號圖標在那裏,但不會做任何事情 – RJH94

+0

@ RJH94:當用'ACTION_IMAGE_CAPTURE'啓動時,相機應用程序不允許用戶確認圖片。 – CommonsWare

+0

我會用我的新代碼更新問題,它似乎沒有返回圖像,我無法在DDMS – RJH94

相關問題