手机和平板电脑的 ImageView 大小

Posted

技术标签:

【中文标题】手机和平板电脑的 ImageView 大小【英文标题】:ImageView size for phones and tablets 【发布时间】:2017-12-01 20:22:44 【问题描述】:

我正在为我的应用制作仪表板之类的东西。一切都很好,除了不同设备屏幕英寸的 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 英寸以上的平板电脑上看起来更大?

【问题讨论】:

为平板电脑和手机创建多个维度文件。 您可以根据屏幕大小创建值。 ***.com/questions/30669523/… Naveen Tamrakar,我已经尝试过这种方法。如果在 dimen.xml 中指定不同的 ImageView 尺寸,它会失去图像清晰度,图像会看起来很模糊 svenvdz,感谢您的回复,但您的链接似乎与此问题无关。我想让平板电脑上的磁贴图标变大但没有模糊效果 我知道我可以使用诸如&lt;dimen name="image_size"&gt;300dp&lt;/dimen&gt; 之类的尺寸,但是如何为每种密度制作所有图像尺寸? 【参考方案1】:

对于这个看似简单的问题,没有人能给出答案,这令人惊讶和奇怪。嗯,不小心找到了一个解决方案,就这么简单

如果您想为平板电脑和手机显示不同的图像尺寸,只需为其创建一个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_
    android:layout_
    android:id="@+id/imgViewIcon"/>

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

【讨论】:

【参考方案2】:

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

<ImageView
android:id="@+id/img"
android:src="@drawable/splash"
android:layout_
android:layout_/>

【讨论】:

感谢您的回复。但这无济于事。

以上是关于手机和平板电脑的 ImageView 大小的主要内容,如果未能解决你的问题,请参考以下文章

ImageView getLayoutParams 宽度单位

如何修复线性布局中的 layout_weight?

android 中怎么控制ImageButton 上的图片与按钮尺寸的匹配

从0系统学Android--4.1探究碎片

WinForm界面怎么适应电脑的屏幕大小

为手机/平板电脑优化的 jQuery 主题?