Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 下载的图片不';t适合ImageView,但尺寸应合适(诺富达)_Android_Android Imageview_Support Image Loader - Fatal编程技术网

Android 下载的图片不';t适合ImageView,但尺寸应合适(诺富达)

Android 下载的图片不';t适合ImageView,但尺寸应合适(诺富达),android,android-imageview,support-image-loader,Android,Android Imageview,Support Image Loader,我从谷歌地图静态API下载了一个静态地图。当我在浏览器中下载图像时,大小正常(728x224)。您可以从下面查看url 但当我尝试在android应用程序中查看它时,它太小了(540x166)。当然,我可以用“centerCrop”来显示它,但这不是理想的解决方案。据我所知,这两种尺寸都是以像素为单位的,所以应该非常适合。我是这样记录的: Log.i(TAG, "view size: "+mapPicture.getWidth()+"/"+mapPicture.getHeight()); L

我从谷歌地图静态API下载了一个静态地图。当我在浏览器中下载图像时,大小正常(728x224)。您可以从下面查看url

但当我尝试在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
我用hdpi设备下载图像并进行测试

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

编辑: 当我下载一张两倍大的图像时,
ImageView
中的可绘制图像大小几乎与之前相同:
pic大小:540/189

你读过这篇文章吗

注意:在果冻豆之前,此函数无法正确检索 在此处传递资源ID时的最终配置密度为 另一个可绘制资源的别名。这意味着如果密度 别名资源的配置与实际配置不同 资源,则返回的可提取数据的密度将不正确, 导致不良的缩放。为了解决这个问题,你可以 通过TypedArray.getDrawable检索可绘制文件。使用 Context.obtainStyledAttributes与包含资源的数组 创建TypedArray的感兴趣的ID


不,我没有。我想我必须读5遍才能理解这个解决方法。但这看起来像是对我问题的一个确切解释。所以novoda ImageManager下载图像,使用您提到的函数获得可绘制图像。这就是问题发生的地方。如果不更改加载程序后面的代码,我将无法解决它。它会将其缩小,当我使用
centerCrop
时,它会再次放大,从而导致质量损失。真奇怪。无论如何,谢谢你,如果你能想出一个解决方案(而不是简单地下载一个更高分辨率的图像),我将不胜感激