ImageView质量

时间:2015-06-04 07:24:26

标签: android android-studio imageview

我刚刚完成了我的应用程序,所以我在平板电脑上测试它,质量很好,但是当我在我的智能手机(HTC One)上尝试时,我的质量很差,所以我想知道原因。

layour正常:

<ImageView
    android:layout_width="210dp"
    android:layout_height="90dp"
    android:id="@+id/topLogo"
    android:layout_marginTop="5dp"
    android:src="@drawable/logo_bleu_petit"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" />

图片大小:250 * 107

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:1)

您应该将不同的图像放在不同的drawable文件夹中。 例如,将250 * 107图像放入/ res / drawable-mdpi,并将相同图像的500 * 214版本放在/ res / drawable-hdpi中。 该应用将在具有不同屏幕尺寸的设备上显示不同的图像。 如果您在/ res / drawable中只有一个低质量图像,当您使用1080p屏幕的设备时,图像可能会被吹散2倍或4倍。然后它看起来质量很差。

还有一件事,尽量不要在ImageView.Use scaleType上使用固定的宽度或高度,这样ImageView可以更好地处理不同大小的图像。

答案 1 :(得分:0)

项目的res文件夹中有不同的drawable文件夹。您必须在不同的可绘制文件夹中提供具有相同名称但不同大小的相同图像文件,以便在任何设备中运行您的应用程序时,它将根据其分辨率自动拍摄图像。

答案 2 :(得分:0)

立即尝试...获取屏幕的分辨率,然后使用imageview ...

的图像
int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();