2012-08-06 12 views
26

मैं जो की तरह एक uri एक छविएंड्रॉइड में यूआरएल से बिटमैप कैसे प्राप्त करें?

file:///mnt/............... 

इस uri का उपयोग कैसे करें छवि प्राप्त करने के लिए किया है, लेकिन यह शून्य देता है, कृपया मुझे बताओ जहां मैं गलत हूँ।

public static Bitmap getBitmapFromURL(String src) { 
    try { 
     URL url = new URL(src); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
     connection.setDoInput(true); 
     connection.connect(); 
     InputStream input = connection.getInputStream(); 
     Bitmap myBitmap = BitmapFactory.decodeStream(input); 
     return myBitmap; 
    } catch (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
} // Author: silentnuke 

अपने मेनिफ़ेस्ट में इंटरनेट अनुमति जोड़ने के लिए मत भूलना:

Bitmap bitmap = BitmapFactory.decodeFile(uri.getPath()); 
Bitmap bitmap = BitmapFactory.decodeFile(uri.toString()); 

उत्तर

79

यह एक सरल एक पंक्ति जिस तरह से यह करने के लिए है:

try { 
     URL url = new URL("http://...."); 
     Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
    } catch(IOException e) { 
     System.out.println(e); 
    } 
+2

यह एक लाइनर नहीं है क्योंकि आपका यूआरएल ऑब्जेक्ट बनाने के प्रयास में घूमना चाहिए। – portfoliobuilder

+0

यह विचार बिटमैप प्राप्त करने का एक लाइन तरीका था जिसे आपने पहले से ही एक यूआरएल परिभाषित किया था। – brthornbury

+4

'url.openConnection()। GetInputStream()' को 'url.openStream()' –

16

इस चाल करना चाहिए।

+0

मेरे यूआरएल के पास https कनेक्शन कैसे है? –

1

ठीक है तो आप एक फ़ाइल से एक बिटमैप प्राप्त करने की कोशिश कर रहे हैं? शीर्षक यूआरएल कहते हैं। वैसे भी, जब आप एंड्रॉइड में बाहरी स्टोरेज से फाइलें प्राप्त कर रहे हैं तो आपको कभी भी सीधे पथ का उपयोग नहीं करना चाहिए। इसके बजाय getExternalStorageDirectory() इतना की तरह फोन:

File bitmapFile = new File(Environment.getExternalStorageDirectory() + "/" + PATH_TO_IMAGE); 
Bitmap bitmap = BitmapFactory.decodeFile(bitmapFile); 

getExternalStorageDirectory() आप एसडी कार्ड के लिए पथ देता है। इसके अलावा आपको मेनिफेस्ट में WRITE_EXTERNAL_STORAGE अनुमति घोषित करने की आवश्यकता है।

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