我创建了一个在手机中运行良好的Android应用程序。现在我希望它兼容7"和10"平板电脑也是。为此,我创建了可绘制的文件夹以及布局文件夹(sw600dp为7,sw720dp为10)。
市场上有许多7英寸平板电脑。具有不同的像素以及屏幕密度。 例如 - 7英寸平板电脑的宽度x高度(600 X 1024)到(1200 x 1920),PPI范围从170到323.
Similarty 10英寸平板电脑的宽度x高度(768 X 1280)至(1600 x 2560),PPI范围为132至300.
考虑到7英寸和10英寸平板电脑的基本尺寸(600 x 1024和768 x 1280),我已经在sw600dp和sw720dp中创建了我的图像资源。我设计的布局方式使我的应用程序看起来都很好这些像素和PPI密度。
但是关于设备的其余部分是什么? 我需要一种方法来确保我的应用程序在市场上所有7英寸和10英寸平板电脑上看起来都很棒。我如何实现这一目标?
谷歌建议开发人员应该关注设备的密度而不是它的大小,但问题是如果我尝试使用DisplayMetrics来查找当前设备的密度并相应地显示我的可绘制和布局 - 可能是我可能由于7英寸(170 - 323)和10英寸(132 - 300)的PPI范围相互重叠,因此在错误的布局中显示错误的可绘制。
如何确保为当前设备显示正确的可绘制和布局?我需要为7英寸和10英寸平板电脑创建多个可绘制和布局文件夹,还是2个可绘制和2个布局(sw600dp和sw720dp)就足够了? 请建议我现在面对这个问题很多天了。 TIA。
答案 0 :(得分:0)
首先,您无需为所有设备检查DisplayMetrics
。您无需担心“实际屏幕密度”;而是寻找“广义密度”。
来自文档,
一组六个广义密度:
- ldpi(低)~120dpi
- mdpi(中)~160dpi
- hdpi(高)~240dpi
- xhdpi(超高)~320dpi
- xxhdpi(extra-extra-high)~480dpi
- xxxhdpi(extra-extra-extra-high)~640dpi
醇>
您需要在适当的密度特定文件夹中指定布局和drawable,以便在不同的设备上正确使用它们。
例如,您要显示一些图像,然后创建具有不同尺寸的图像副本(小尺寸图像用于小显示,大尺寸图像用于大显示)。准备好这些图像后,将它们放入密度文件夹(对于drawable,它将是drawable-hdpi/
,drawable-mdpi/
等。而已。现在,当您的应用运行时,系统将检测屏幕密度,并从适当的文件夹中获取图像。
有关详细信息,请阅读Supporting Multiple Screens。