首先,我想提前道歉,因为我确定之前已经有人问过这种问题,但即使我花了大约 2 周的时间来解决这些问题,我还是无法弄清楚我在问什么做错了。
这是我在 Activity 中加载图像的地方:
ImageView image = (ImageView) findViewById(R.id.shop_Image) ;
image.setScaleType(ImageView.ScaleType.CENTER_CROP) ;
String mDrawableName = data.vec.elementAt(id).fuenf ;
if ( mDrawableName.equals("leer") )
mDrawableName = "ic_launcher" ;
int resID = getResources().getIdentifier(mDrawableName , "drawable", etPackageName());
image.setImageResource(resID) ;
这是 xml 文件:
<LinearLayout
android:id="@+id/shop_Layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FDFDFD"
android:orientation="vertical" >
<ImageView
android:id="@+id/shop_Image"
android:contentDescription="@string/shop_image"
android:layout_width="match_parent"
android:layout_height="400dp"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher" />
[...]
结果如下:
在 Galaxy Nexus、Nexus 5 或 Samsung S3 上它看起来像这样:
在 Razr I 或 HTC Desire X 上它看起来像这样:
我知道上述能正确显示图像的设备的显示屏至少有 4.7 英寸,而图像模糊的设备都有 4.3 英寸或 4 英寸。
即使我将这些图像放在不同的可绘制文件夹中,我仍然会得到这些不愉快的结果。
如果需要更多代码示例,请告诉我。
PS:抱歉缺少突出显示,我还是个新手:)
最佳答案
在 Google 上的快速搜索让我知道了这些事实:
Desire X 规范:480 x 800 像素,4.0 英寸(~233 ppi 像素密度)
- 因此,它是一个 hdpi
设备
三星 S3 规范:720 x 1280 像素,4.8 英寸(~306 ppi 像素密度)
- 因此,它是一个 xhdpi
设备
现在,您应该阅读以下内容:developer.android.com/guide/practices/screens_support.html.
一个非常快速的解决方法是:将图像放在 /res/drawable-xhdpi
文件夹中(如果您没有该文件夹,只需创建它)。
还要考虑:
图像应以适当的 dpi 分辨率保存。
一个常见的错误是将它们保留在 72 dpi 或 96 dpi 的标准(不足)分辨率。
hdpi
图像分辨率应为 240 dpi 和 xhdpi
图像分辨率应为 320 dpi,才能正常显示并且可以很好地扩展。
那么,怎么办?
更改较大图像的分辨率,而不更改其大小(触摸分辨率时会自动缩放 - 因此,将其重置为 1280*800)。
然后通过更改分辨率(它应该缩小到正确的大小 480*854 - 只需切掉超过 54 像素 - 顶部 27 和底部 27,从这个图像中制作较小的图像底部)。
将正确的图像放入适当的文件夹后,现在一切都应该很合适了。
关于android - 图像在另一台设备上模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101035/