【android】從網路擷取圖片的三種方法

來源:互聯網
上載者:User

http://blog.csdn.net/ameyume/article/details/6089334

以上連結:實現圖片的放大縮小

http://blog.csdn.net/kesenhoo/article/details/6534757

以上連結:用另一種思路實現~~~(改天認真讀一下)

http://doinone.iteye.com/blog/1074283

1.直接擷取:(容易:ANR,不建議)

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;Drawable drawable = loadImageFromNetwork(IMAGE_URL);mImageView.setImageDrawable(drawable) ;
private Drawable loadImageFromNetwork(String imageUrl){    Drawable drawable = null;    try {        // 可以在這裡通過檔案名稱來判斷,是否本地有此圖片        drawable = Drawable.createFromStream(                new URL(imageUrl).openStream(), "image.jpg");    } catch (IOException e) {        Log.d("test", e.getMessage());    }    if (drawable == null) {        Log.d("test", "null drawable");    } else {        Log.d("test", "not null drawable");    }        return drawable ;}

 

2. 後台線程擷取url圖片:

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;new Thread(new Runnable(){    Drawable drawable = loadImageFromNetwork(IMAGE_URL);    @Override    public void run() {                // post() 特別關鍵,就是到UI主線程去更新圖片                        mImageView.post(new Runnable(){        @Override        public void run() {            // TODO Auto-generated method stub            mImageView.setImageDrawable(drawable) ;        }}) ;        }        }).start()  ;

3.AsyncTask擷取url圖片

mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;new DownloadImageTask().execute(IMAGE_URL) ;private class DownloadImageTask extends AsyncTask<String, Void, Drawable> {                protected Drawable doInBackground(String... urls) {            return loadImageFromNetwork(urls[0]);        }        protected void onPostExecute(Drawable result) {            mImageView.setImageDrawable(result);        }}

比較三種方法,感覺代碼簡潔方面用第三方法不錯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.