我想從內置的Android圖庫中調用ACTION_PICK
Intent。 我遇到了Picasa圖片的問題。 我已經使用了代碼link,但它不起作用(File對象不存在)。 任何想法,請。Android如何從內置圖庫檢索Picasa照片?
7
A
回答
0
代碼工作,如果是插入該指令:
intent.putExtra("crop", "true");
0
- 發動
ACTION_GET_CONTENT
意圖,而不是一個ACTION
_PICK - 提供一個額外的
MediaStore.EXTRA_OUTPUT
與URI到一個臨時文件。
添加到您的通話活動:
文件yourFile;
現在用這個code to get Intent
:
yourFile = getFileStreamPath("yourTempFile");
yourFile.getParentFile().mkdirs();
Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT, null);
galleryIntent .setType("image/*");
galleryIntent .putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(yourFile));
galleryIntent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.name());
startActivityForResult(galleryIntent, GALLERY_PIC_REQUEST);
請確認yourFile
在您調用活動創建
而且
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case GALLERY_PIC_REQUEST:
File file = null;
Uri imageUri = data.getData();
if (imageUri == null || imageUri.toString().length() == 0) {
imageUri = Uri.fromFile(mTempFile);
file = mTempFile;
//this is the file you need! Check it
}
//if the file did not work we try alternative method
if (file == null) {
if (requestCode == 101 && data != null) {
Uri selectedImageUri = data.getData();
String selectedImagePath = getPath(selectedImageUri);
//check this string to extract picasa id
}
}
break;
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
if(cursor!=null)
{
int index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(index);
}
else return null;
}
5
ACTIVITYRESULT_CHOOSEPICTURE是你打電話時使用INT startActivity(INTEN t,requestCode);
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == ACTIVITYRESULT_CHOOSEPICTURE) {
BitmapFactory.Options options = new BitmapFactory.Options();
final InputStream is = context.getContentResolver().openInputStream(intent.getData());
final Bitmap bitmap = BitmapFactory.decodeStream(is, null, options);
is.close();
}
}
+0
感謝您的這一點,它工作正常,即使當圖片來自picasa。請記住在一個線程上執行此代碼,因爲它可能會從網上下載內容。 – 2012-10-14 12:40:02
0
使用此代碼
final Uri tempUri = data.getData();
Uri imageUri = null;
final InputStream imageStream;
try {
imageStream = getActivity().getContentResolver().openInputStream(tempUri);
Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
imageUri = getImageUri(getActivity(), selectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
相關問題
- 1. 如何從圖庫中檢索圖片的Picasa ID/URL
- 2. 從照片庫中檢索照片
- 3. 將照片從android上傳到picasa?
- 4. 從Android上的Picasa檢索圖像
- 5. 如何使用Google API和Asp.net從Picasa中僅檢索1張照片?
- 6. 從數據庫檢索照片到PictureBox
- 7. 像picasa或Facebook的照片庫
- 8. 無法從ipad設備中的照片庫中檢索照片
- 9. 如何從照片庫中檢索數組中的所有照片和視頻?
- 10. 在gdata中使用Oauth2 AccessToken檢索Picasa照片
- 11. 如何從照片庫的PhoneGap的圖片在Android
- 12. Android - Picasa上傳圖片
- 13. 從圖庫中檢索非緩存的Picasa圖像。 3.0和4.0
- 14. 從圖庫中提取照片android
- 15. 如何從網絡攝像頭檢索圖片快照?
- 16. 如何使用圖形API從Facebook組中檢索照片?
- 17. 的Android:如何從圖庫中選擇的照片設置爲位圖
- 18. Android照片庫
- 19. 如何從Picasa照片中獲取共享個人信息?
- 20. 如何使用Google-gdata .net API從Picasa獲取單張照片
- 21. 如何使用iPhone SDK從Picasa或Flickr下載照片相冊...?
- 22. 如何從Picasa和Flicker獲取用戶照片?
- 23. 使用的UIImagePickerController檢索照片庫中選擇圖片
- 24. 從圖片庫檢索圖像 - REST
- 25. 檢索保存到照片庫的iPhone照片
- 26. 嵌入一個幻燈片照片庫與Picasa的autorepeats?
- 27. 如何從Android手機圖庫上傳照片?
- 28. 如何從圖庫中選取圖片而不是android中的照片?
- 29. 如何檢索Facebook上的照片
- 30. 如何檢索照片的PID?
的mTempFile文件是有史以來空。 – 2012-01-11 14:42:39
這不起作用,如果圖片是在picasa .. – 2012-10-14 12:08:15