手机和平板电脑的 ImageView 大小

ImageView size for phones and tablets

我正在为我的应用制作类似仪表板的东西。一切都很好,除了不同设备屏幕英寸的 ImageView 大小的情况。

在 7 英寸及以下的手机和设备上看起来不错

但在超过 7" 的设备上它看起来很糟糕

在所有情况下,我都使用相同大小的 ImageView - 50dp,并且生成了 MDPI、HDPI、XHDPI、XXHDPI 图像

如果我将使用 dimens,我会得到模糊的图像,因为 MDPI、HDPI、XHDPI、XXHDPI 图像只会为 50dp 生成,而不会为 100dp 生成

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">100dp</dimen>
</resources>

但似乎 7" 和更多英寸的设备需要更大的图像尺寸,例如 100dp。

我无法通过谷歌搜索解决方案。 是否可以在不创建额外代码的情况下使图像在 7"+ 平板电脑上看起来更大?

不要在 xml 中为 imageview.Give imageview 的高度和宽度 wrap_content 提供固定大小......

<ImageView
android:id="@+id/img"
android:src="@drawable/splash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

这个看似简单的问题竟然没有人能给出答案,真是令人惊讶和奇怪。好吧,无意间我找到了一个解决方案,就这么简单

如果您想为平板电脑和手机显示不同的图片尺寸,只需为其创建一个 dimen

对于手机,我们显示 50dp 的小图片

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">50dp</dimen>
</resources>

对于 10 英寸左右的平板电脑,我们显示 2 倍大小的 100dp 图片

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="image_size">100dp</dimen>
</resources>

然后在 ImageView 标签中指定尺寸:

<ImageView
    android:layout_width="@dimen/image_size"
    android:layout_height="@dimen/image_size"
    android:id="@+id/imgViewIcon"/>

而且您必须为手机制作不同密度的图像,原始大小为 50dp,并将它们放在 MDPI、HDPI、XHDPI、XXHDPI 文件夹中。对于平板电脑,制作 100dp 的图像并生成不同的密度,然后将其放入 drawable-wNNNdp-?dpi 文件夹,其中 NNN - 屏幕宽度和 ? - l, m, h, xh, xxh, xxxh dpi。确切的文件夹 drawable-wNNNdp-?dpi 是答案