Android下载图片显示问题

在Android应用开发中遇到图片下载后未正确显示的问题。通过在主线程发送消息来通知显示图片的方法得以解决。

============问题描述============


我用下面的代码从服务器端下载了图片,运行在新开的线程中


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 = android.graphics.Bitmap@40d20270
然后我就在主线程里给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 block

			e.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 block

			e.printStackTrace();

		}



	




可是image并没有显示出来该bitmap,这是为什么。明明已经显示下载好了,图片在135K,也不大啊。怎么回事,纠结一天了。

============解决方案1============


因为你执行image.setImageBitmap(bm);时图片并没有下载好,你应该在下载好后给主线程发消息,通知主线程显示图片。

============解决方案2============


用handler更新主线程图片,或者用asynctask这个异步下载图片

转载于:https://www.cnblogs.com/liangxieliang56/p/4083212.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值