0

我从 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 设备上进行测试。

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

编辑: 当我下载两倍大的图像时,里面的drawableImageView几乎和以前一样大小:pic size: 540/189

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

4

1 回答 1

1

你从这里读过这个吗?

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

于 2012-11-29T21:11:44.707 回答