मैं एक छवि ले के लिए एक अनुरोध शुरू कर रहा हूँ: onActivityResult
में बाहर वापसएंड्रॉयड - छवि पिकर, गलत छवि
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Choose"), PHOTO_GALLERY);
और हो रही डेटा:
if(resultCode == Activity.RESULT_OK && requestCode == PHOTO_GALLERY)
{
U.log(data.getData());
Bitmap bm = ... // built from the getData() Uri
this.postImagePreview.setImageBitmap(bm);
}
जब मैं आशय का शुभारंभ, मैं कुछ फ़ोल्डर्स देखें, जैसे sdcard
, Drop Box
, MyCameraApp
, और इसी तरह।
यदि मैंने पूर्वावलोकन लोड किया है, तो मैंने sdcard
से एक तस्वीर चुना है, यह पूरी तरह से गलत छवि है। अन्य फ़ोल्डर्स मुझे यह समस्या नहीं दे रहे हैं।
क्या किसी को पता है कि यह मुझे एक छवि क्यों चुनने देगा, फिर मुझे उरी को दूसरे के लिए दें?
संपादित करें: यहाँ कुछ लॉग इन exampled रहे getData()
रों:
अच्छा:
content://com.google.android.gallery3d.provider/picasa/item/5668377679792530210
बुरा:
content://media/external/images/media/28
संपादित करें: मैं एसटीआई गैलरी के sdcard फ़ोल्डर से चुनते समय, समस्याएं हो रही हैं।
// cursor
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = mContext.getContentResolver().query(selectedImage, filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String filePath = cursor.getString(columnIndex);
cursor.close();
// Cursor: /mnt/sdcard/Pic.jpg : /mnt/sdcard/Pic.jpg
U.log("Cursor: " + filePath + " : " + Uri.parse(filePath));
// "regular"
// Regular: content://media/external/images/media/28 : content://media/external/images/media/28
U.log("Regular: " + data.getDataString() + " : " + Uri.parse(data.getDataString()));
// Regular 2: content://media/external/images/media/28 : content://media/external/images/media/28
U.log("Regular 2: " + data.getData() + " : " + data.getData());
mPostImagePreview.setImageBitmap(BitmapFactory.decodeFile(filePath));
mPostImagePreview.setVisibility(View.VISIBLE);
वे अभी भी गलत छवि सेट:
यहाँ मैं onActivityResult में क्या कर रहा का एक सा अधिक विस्तार है। मैं अगर मैं गैलरी में दबाए रखें छवि में जाते हैं, और उसके विवरण देखने:
TItle: Pic
Time: May 2, 2012
Width: 720
Height: 1280
Orientation: 0
File size: 757KB
Maker: Abso Camera
Model: Inspire 4G
Path: /mnt/sdcard/Pic.jpg
तो, गैलरी मुझे पथ कह रहा है ले कार्रवाई के रूप में ही है, और गैलरी इसे सही ढंग से प्रदर्शित हो रहा है । तो अगर मैं इसे एक्टिविटी रिसेट से सेट करता हूं तो पृथ्वी पर क्यों प्रतिपादन नहीं किया जा रहा है?
private void selectPhoto()
{
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
((Activity)mContext).startActivityForResult(Intent.createChooser(intent, "Select Picture"), PHOTO_GALLERY);
}
क्या यह व्यवहार यादृच्छिक है? मेरा मतलब है, जब आप छवि चयन दोहराते हैं तो क्या कोई पैटर्न दिखाई देता है ..? – Ronnie
शायद गैलरी में थंबनेल गलत हैं। अगर छवियां हटा दी जाती हैं तो यह खुशी हो सकती है क्योंकि एंड्रॉइड छवि आईडी का पुन: उपयोग करता है। – uwe
@ userSeven7s: हमेशा जब मैं गैलरी ऐप के sdcard फ़ोल्डर से चुनता हूं। – Josh