Android下載圖片顯示問題

來源:互聯網
上載者:User

標籤:des   android   http   io   os   java   for   sp   on   

============問題描述============


我用下面的代碼從伺服器端下載了圖片,運行在新開的線程中
System.out.println("before bm = " + bm);String imageUrl1 = "http://10.0.2.2:8080/BBStuServlet/test01_upload_1.jpg";bm = NetTool.downlodBitmap(imageUrl1);map2.put("image", bm);System.out.println("after bm = " + bm);

logcat裡有輸出:  before bm=null   和  after bm = [email protected]
然後我就在主線程裡給image設定Bitmap
image.setImageBitmap(bm);

downloadBitmap()方法如下:
/* * 從指定url下載圖片 */public static Bitmap downlodBitmap(String url) {URL myFileUrl = null;Bitmap bitmap = null;try {myFileUrl = new URL(url);} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();conn.setDoInput(true);conn.connect();InputStream is = conn.getInputStream();bitmap = BitmapFactory.decodeStream(is);is.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}



可是image並沒有顯示出來該bitmap,這是為什麼。明明已經顯示下載好了,圖片在135K,也不大啊。怎麼回事,糾結一天了。

============解決方案1============


因為你執行image.setImageBitmap(bm);時圖片並沒有下載好,你應該在下載好後給主線程發訊息,通知主線程顯示圖片。

============解決方案2============


用handler更新主線程圖片,或者用asynctask這個非同步下載圖片

Android下載圖片顯示問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.