手机和平板电脑的 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,感谢您的回复,但您的链接似乎与此问题无关。我想让平板电脑上的磁贴图标变大但没有模糊效果 我知道我可以使用诸如<dimen name="image_size">300dp</dimen>
之类的尺寸,但是如何为每种密度制作所有图像尺寸?
【参考方案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 宽度单位