0

我已阅读文档和一些问题,但找不到任何答案。这是我的第一个成熟的应用程序,我希望它至少能够在不同的屏幕尺寸上正确呈现,所以我使用 dp 作为单位,使用 sp 作为文本视图。我已经在不同的设备和不同的 avd 上尝试过。我观察到,在大多数设备上,屏幕尺寸与密度成正比。(小屏幕有 ldpi,普通屏幕有 mdpi,大屏幕有 hdpi,xlarge 屏幕有 xhdpi)这样,我的默认布局在遵循这种趋势的设备上呈现。但是,有些设备不遵循这种趋势(例如,三星 Galaxy Tab,如果我没记错的话,它有大 mdpi),所以当我尝试我的布局时,闪屏(是的,我知道闪屏是烦人且不推荐)像素化,文字很小。

我想要发生的是启动画面将取决于屏幕大小,而文本大小将取决于屏幕大小和密度。我如何实现这一目标?谢谢。

4

1 回答 1

0

查看此页面:Android 设备

它显示了许多设备及其相应的统计数据。然后,您需要决定如何最好地针对无法正确显示内容的设备。

我认为最好的方法是使用不同的值文件夹,您可以在其中根据 API 级别(例如使用 API 11 或更低版本的所有设备的 values-v11)或屏幕尺寸(例如 values-small 到 values-xlarge)创建不同的文件夹。然后创建不同的styles.xml、dimens.xml,甚至colors.xml。

在布局中,您可以为每个小部件指定一个使用不同尺寸的样式,或者您可以将尺寸值放入样式中,或者您可以在布局文件中设置 dimens.xml 文件中的值。

您只应该在可绘制文件夹(如 drawable-hdpi)上使用 dpi 限定符,因为位图不随 dpi 以及字体和其他可绘制对象缩放。

至于不同的布局文件夹,我认为您应该将它们限制为纵向与横向,其中小部件的位置会有所不同。

Galaxy Tab 是一款屏幕尺寸为 1024 X 600 的平板电脑。这是您希望拥有不同值文件夹 (values-xlarge) 的地方。您可能还想使用适用于平板电脑的尺寸为其定义特殊样式。您将它的 styles.xml、dimens.xml 文件放在 values-xlarge 文件夹中。

因此,是的,平板电脑将真正拉伸您将用于背景的任何位图。在这种情况下,您可以为其设置不同的可绘制对象。

于 2013-11-03T04:56:35.020 回答