2013-12-21 118 views
0

我能夠在Imgur上傳圖片,並使用API​​網站中給出的示例獲取鏈接。 我不能做的是從URL中檢索位圖或Drawable。 我找不到關於它的文檔。顯示來自imgur的圖片

URL url= "http://imgur.com/1awAsRh" 
Bitmap mPic = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 

mPic爲空。

我看到網站上的圖片網址http://i.imgur.com/1awAsRh.jpg 我看到的圖片可以PNG JPG等...

有沒有辦法直接獲取圖片的URL,是它總是相同的模式?

Tx提前!

回答

0

嘗試使用此,它實現了的AsyncTask做的東西在後臺(需要Android 4.0以上版本):

class loadimage extends AsyncTask<Void, Void, Void> { 
    ProgressDialog pdLoading = new ProgressDialog(YourClass.this); 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     pdLoading.setMessage("Loading Image..."); 
     pdLoading.show(); 
    } 

    @Override 
    protected void doInBackground(Void... params) { 
     String stringurl = "http://imgur.com/1awAsRh" 
     try { 
      Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(stringurl).getContent()); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     pdLoading.dismiss(); 
     // do what you want with your bitmap 
     return null; 
    } 
} 

然後在這樣調用你的onCreate

new loadimage().execute(); 

您還需要確保您的清單中包含以下內容:

<uses-permission android:name="android.permission.INTERNET" /> 
+0

正是像我一樣,但線 位圖位= BitmapFactory.decodeStream( (InputStream)new URL(stringurl).getContent()); 返回null。應該是因爲img是http://i.imgur.com/1awAsRh.jpg而不是http://imgur.com/1awAsRh –