我从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
答案 0 :(得分:1)
您是否从here了解了这个?
注意:在 JELLY_BEAN 之前,此功能无法正确检索 这里传递的资源ID的最终配置密度是 另一个Drawable资源的别名。这意味着如果密度 别名资源的配置与实际不同 资源,返回的Drawable的密度不正确, 导致缩放不良。要解决这个问题,您可以改为 通过TypedArray.getDrawable检索Drawable。使用 Context.obtainStyledAttributes包含一个包含资源的数组 创建TypedArray的兴趣ID