2012-03-06 16 views
12

मैं निर्मित गैलरी का उपयोग करके एक छवि प्राप्त करने का प्रयास कर रहा हूं। यह एमुलेटर में ठीक काम करता है और यह केवल गैलरी खोलता है लेकिन वास्तविक डिवाइस पर यह मुझे कई चुनता है, उनमें से एक फ़ाइल मैनेजर है जो मुझे किसी भी प्रकार की फाइलों को चुनने में सक्षम बनाता है, यहां तक ​​कि के बाद ऐप क्रैश की एपीके फाइलें भी मेरे पास यह कोड हैएंड्रॉइड गैलरी से केवल छवि प्राप्त करें

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 


    if (resultCode == RESULT_OK) { 


    switch(requestCode){  

     case SELECT_PICTURE: 
       Uri selectedImageUri = data.getData(); 


      break; 
     } 
     } 

} का उपयोग करने के

.... 
    Intent intent = new Intent(Intent.ACTION_PICK); 
    intent.setType("image/*"); 
    startActivityForResult(intent, SELECT_PICTURE); 
.... 
+0

फ़ाइल प्रबंधक को अनइंस्टॉल करें, क्योंकि यह स्पष्ट रूप से जंक का एक टुकड़ा है। ऐसा कहा जा रहा है, StackOverflow प्रोग्रामिंग सवालों के लिए है, और यह कोई सवाल नहीं है। – CommonsWare

+1

मुझे लगता है कि उनके सवाल की तरह है "मैं उपयोगकर्ता को इरादे से गैलरी का उपयोग करके फोटो चुनने की अनुमति कैसे दूं।" – FoamyGuy

उत्तर

24

प्रयास करें:

Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE); 

आप हमेशा स्टॉक गैलरी आवेदन मैं डॉन 'का उपयोग करना चाहते हैं, तो आप इस के लिए अपने startActivity को बदलने में सक्षम हो सकता है एक आशय चयनकर्ता का प्रयोग करने की आवश्यकता है लगता है:

startActivityForResult(intent, SELECT_PICTURE); 
+1

धन्यवाद यह बहुत उपयोगी था – mrl25

+2

स्टॉक एंड्रॉइड 4.4 फोटो ऐप इसे ध्यान में रखता नहीं है। –

+0

एकमात्र कठोर answeir। मैंने बहुत समय खोजा - मेरी गलती intent.setAction (Intent.ACTION_GET_CONTENT) सेट कर रही थी; बहुत सारे एंड्रॉइड मुझे ऐसे ऐप्स से चुनने का विकल्प प्रदान करते हैं, जैसे कि Google ड्राइव, वीबर फोटो, लेकिन मैं यूरी को पार्स नहीं कर सका। आपके answeir के लिए धन्यवाद, सुनिश्चित करें कि सभी standart दीर्घाओं को इसे ठीक से संभालना चाहिए (मैंने 4 फोन पर जांच की) –

1

अपने इरादे के लिए इस का उपयोग करके देखें

5
public void ChoosePicture(View v) { 
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*"); 
    startActivityForResult(photoPickerIntent, 1); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case 1: 
    { 
     if (resultCode == RESULT_OK) 
     { 
     Uri photoUri = data.getData(); 
     if (photoUri != null) 
     { 
     try { 
       String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
       Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, null); 
       cursor.moveToFirst(); 
       int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
       String filePath = cursor.getString(columnIndex); 
       cursor.close(); 
       bMap_image = BitmapFactory.decodeFile(filePath); 
       ImageView img = (ImageView) findViewById(R.id.gallery1); 
       img.setImageBitmap(bMap_image); 


    }catch(Exception e) 
     {} 
     } 
    }// resultCode 
    }// case 1 
    }// switch, request code 
}// public void onActivityResult 

mmh, किसी भी तरह यह मेरे पिछले कुछ "}" की स्थिति बदल गया।

यह कोड आपको गैलरी से एक छवि चुनने देगा और फिर इसे एक छविदृश्य पर दिखाएगा।

मैं इस डिवाइस का उपयोग अपने डिवाइस पर करता हूं, और एक आकर्षण की तरह काम करता है।

संबंधित मुद्दे