首先,我想提前道歉,因为我确信以前曾经问过这样的问题,但即使我在这些问题上寻找了大约2个星期,我也无法弄明白我是什么做错了。
这是我在活动中加载图片的地方:
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:很抱歉找不到突出显示,我还是新手:)
答案 0 :(得分:4)
快速搜索Google让我知道这些事实:
Desire X规格:480 x 800 pixels, 4.0 inches (~233 ppi pixel density)
- 所以,它是hdpi
设备
三星S3规格:720 x 1280 pixels, 4.8 inches (~306 ppi pixel density)
- 所以,它是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,从底部)。
将正确的图像放入正确的文件夹后,现在一切都应该很好。