1

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

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

在此处输入图像描述

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

在此处输入图像描述

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

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

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

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

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

4

2 回答 2

0

对于这个看似简单的问题,没有人能给出答案,令人惊讶和奇怪。好吧,我偶然找到了一个解决方案,它同样简单

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

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

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

对于 10 英寸左右的平板电脑,我们显示 2x 大小的图像,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是答案

于 2017-06-28T15:19:08.100 回答
-1

不要给 imageview 提供固定大小。在 xml 中给出 imageview 的高度和宽度 wrap_content ....

<ImageView
android:id="@+id/img"
android:src="@drawable/splash"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
于 2017-06-28T12:53:33.567 回答