android - 图像在另一台设备上模糊

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

首先,我想提前道歉,因为我确定之前已经有人问过这种问题,但即使我花了大约 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 上它看起来像这样:

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:抱歉缺少突出显示,我还是个新手:)

最佳答案

在 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 dpi96 dpi 的标准(不足)分辨率。

hdpi 图像分辨率应为 240 dpixhdpi 图像分辨率应为 320 dpi,才能正常显示并且可以很好地扩展。

那么,怎么办?

更改较大图像的分辨率,而不更改其大小(触摸分辨率时会自动缩放 - 因此,将其重置为 1280*800)。
然后通过更改分辨率(它应该缩小到正确的大小 480*854 - 只需切掉超过 54 像素 - 顶部 27 和底部 27,从这个图像中制作较小的图像底部)。

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

关于android - 图像在另一台设备上模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101035/

相关文章:

适用于不同产品风格的 Android Google Maps API key

Android 高度不适用于不同的圆角矩形

java - 如何在其他 JTextField 下找到 JTextField?

Android 在警报对话框中设置文本

html - 似乎无法让图像、文本等显示在我的垂直导航菜单旁边

android - 升级 Android 时保留数据库中的表

android - Kotlin-如何从日历中获取日期为 "dd"和月份为 "mm"?

Android MediaCodec 在异步模式下编码和解码

Android 用户输入,使用自定义键盘

android - 如何从代码(Java/Kotlin)文件更改可绘制背景色