我使用的後續代碼中使用本機攝像頭拍攝照片:存儲畫面
private File mImageFile;
private String mTempImagePath;
public static Uri imageUri;
public void imageFromCamera() {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Log.d("fototemp", "No SDCARD");
} else {
mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder", "Pic"+System.currentTimeMillis()+".jpg");
imageUri = Uri.fromFile(mImageFile);
DataClass dc = (DataClass) getApplicationContext();
File tempFile = new File(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
Uri tempUri = Uri.fromFile(tempFile);
dc.setString(DataClass.IMAGE_PATH, tempUri.toString());
Log.d("fototemp", "ImagePath: " + tempUri.toString());
mTempImagePath = mImageFile.getAbsolutePath();
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile));
startActivityForResult(intent, 0);
}
}
我在imageFromCamera打印出的ImagePath()方法是:4file:///文件%3A/mnt/sdcard/testFolder
現在,當我嘗試使用managedQuery訪問這些照片時,我得到一個不同的目錄。 MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI.toString()給出的內容:// media/external/images/thumbnails
這兩條路徑有什麼區別?我怎樣才能讓managedQuery去testFolder地圖尋找圖片?
編輯: 我試圖連接:
Uri phoneUriII = Uri.parse(Environment.getExternalStorageDirectory()+File.separator+"testFolder");
imagecursor = managedQuery(phoneUriII, img, null,null, MediaStore.Images.Thumbnails.IMAGE_ID + "");
但是這個代碼崩潰
你的意思是你想從Url對象獲得一個真實的圖像路徑?像[this](http://www.androidsnippets.com/get-file-path-of-gallery-image)? – Audrius 2011-04-22 09:53:14
我想要保存我的照片的文件夾轉換爲Uri,因此我可以將我傳遞給managedQuery方法..我認爲 – Vincent 2011-04-22 09:58:24
難道你不能只使用從MediaStore獲取的Url來檢索二進制流嗎?嘗試調用getData()或使用'getContentResolver()。openOutputStream(uri)'。 – Audrius 2011-04-22 10:28:54