listview的item中有imageview,imageview的layout_width和layout_height都设置为wrap_content,同样的图片,放在drawable里面作为资源时android:src="@drawable/testimg"显示就比从网上下载下来再通过img.setImageDrawable(drawable)要大一些,为什么??????

解决方案 »

  1.   

    这个问题原因很简单,读取非drawable文件夹下的图片文件与drawable下的图片文件规则不同,drawable下的图片系统会根据当前设备密度(density)进行动态计算显示(在不同分辨率和密度的设备上使同一张图片在页面中的比例保持一致),而本地文件读取的是原图片,系统不会做任何操作。这个细说的话就是android多屏幕适配的问题,LZ可以搜索下,资料很多。
      

  2.   

    解决办法是:你把直接下载的图片高宽拿到后,用手机屏幕密度乘图片的高宽,得到新的高宽.
    把新的高宽设置成imageview的高宽就OK了