下载的图片不适合ImageView虽然大小应该没问题(novoda)

时间:2012-11-29 20:55:45

标签: android android-imageview support-image-loader

我从Google Maps Static API下载静态地图。当我在浏览器中下载图像时,大小正常(728x224)。你可以从下面查看网址。

但是当我尝试在我的Android应用程序中查看它时,它是小的(540x166)。当然我可以用'centerCrop'显示它,但它不是理想的解决方案。据我所知,两种尺寸都是像素,所以它应该完美适合。我这样记录:

 Log.i(TAG, "view size: "+mapPicture.getWidth()+"/"+mapPicture.getHeight());
 Log.i(TAG, "pic size: "+mapPicture.getDrawable().getIntrinsicWidth()+"/"+mapPicture.getDrawable().getIntrinsicHeight());

logcat看起来像这样:

11-29 21:41:37.547: I/DetailsFragment(18064): view size: 728/224
11-29 21:41:37.547: I/DetailsFragment(18064): http://maps.google.com/maps/api/staticmap?center=0,0&zoom=3&size=364x112&scale=2&sensor=false
11-29 21:41:37.547: I/DetailsFragment(18064): pic size: 540/166

我使用ImageManager下载图像并在hdpi设备上进行测试。

那么为什么下载的图片大小不同呢?

修改 当我下载两倍大的图像时,ImageView内的可绘制内容几乎与之前相同:pic size: 540/189

http://maps.google.com/maps/api/staticmap?center=52.2396,21.0174&zoom=14&size=729x225&scale=2&sensor=false

1 个答案:

答案 0 :(得分:1)

您是否从here了解了这个?

  

注意:在 JELLY_BEAN 之前,此功能无法正确检索   这里传递的资源ID的最终配置密度是   另一个Drawable资源的别名。这意味着如果密度   别名资源的配置与实际不同   资源,返回的Drawable的密度不正确,   导致缩放不良。要解决这个问题,您可以改为   通过TypedArray.getDrawable检索Drawable。使用   Context.obtainStyledAttributes包含一个包含资源的数组   创建TypedArray的兴趣ID