图像模糊在另一台设备上

时间:2014-06-07 19:54:18

标签: android android-layout layout android-imageview android-screen-support

首先,我想提前道歉,因为我确信以前曾经问过这样的问题,但即使我在这些问题上寻找了大约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上,它看起来像这样:

http://abload.de/img/2014-06-0419.23.52ojuo4.png

在Razr I或HTC Desire X上,它看起来像这样:

http://abload.de/img/2014-05-2514.19.482ju01.png

我知道上面显示正确图像的设备的显示器至少有4.7英寸,而模糊图像的设备都有4.3英寸或4英寸。

即使我把这些图像放在不同的可绘制文件夹中,我仍然会得到这些令人不快的结果。

如果需要进一步的代码示例,请告知我们。

PS:很抱歉找不到突出显示,我还是新手:)

1 个答案:

答案 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,从底部)。

将正确的图像放入正确的文件夹后,现在一切都应该很好。