几周前我开始编写Android-Apps编程。首先,非常感谢本论坛的所有成员。许多帖子帮助我解决了我的应用程序的问题。但是现在,我遇到了一个我无法解决的问题,我找不到答案。
那么,问题是什么:
在我的应用程序中,我想显示一种表格。在我的主要测试设备上,一切都很合适。但是当我在AVD上尝试使用较小屏幕的应用程序时,我意识到,文本大小(以dp为单位)是大的,系统会创建第二行来显示所有字母。因此,我决定为四种不同类型的屏幕尺寸创建一个自己的布局,其中包含四种不同的文字大小。
根据http://developer.android.com/guide/practices/screens_support.html和http://developer.android.com/guide/topics/resources/providing-resources.html#BestMatch以及互联网上的许多其他帖子,系统会自动选择正确的布局。
但我断言,它没有。系统始终加载默认布局。我不明白为什么。当我删除默认顺序时,它总是加载小布局,即使在我的Galaxy Note 2上也是如此。在屏幕最小的AVD上,应用程序在启动时关闭并出错。但是,正常的布局在最小的屏幕上运行......
我甚至试过这个来支持布局,但没有成功:
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"/>
每个xml文件都具有相同的名称。这些文件夹被命名为'layout','layout-small','layout-large'和'layout-xlarge'。
任何人都可以帮助我吗?我想,我只是错过了一个小技巧......
答案 0 :(得分:1)
我认为你不想要'布局','布局小','布局大'和'布局-xlarge'。虽然这些确实存在,但它们是通用的,行为并没有明确定义。见表:
http://developer.android.com/guide/practices/screens_support.html
您使用的是尺寸,而不是密度。试试这些:`
ldpi Resources for low-density (ldpi) screens (~120dpi).
mdpi Resources for medium-density (mdpi) screens (~160dpi). (This is the baseline density.)
hdpi Resources for high-density (hdpi) screens (~240dpi).
xhdpi Resources for extra high-density (xhdpi) screens (~320dpi).
生成的文件夹为layout
,layout-ldpi
,layout-hdpi
等。这就是我一直以来的方式,并且有效。
答案 1 :(得分:0)
可能更多关于密度而不是尺寸。为什么不尝试而不是按大小分隔,使用ldpi,mdpi,hdpi和xhdpi?
答案 2 :(得分:0)
好的,我认为这是最好的解决方案......
http://www.vanteon.com/downloads/Scaling_Android_Apps_White_Paper.pdf