我正在开发一个具有纵向模式相对布局的计算器应用程序。所有按钮和TextView都放置在这个单一的相对布局中,并且相同的相对布局用于Land模式。我已经挖掘了近15天的网络,但没有发现任何相关内容。我的应用程序也支持平板电脑。 MinSDKVer为14,Target为v21。
目前我正在尝试这些Layouts文件夹
1:layout-sw400dp(适用于Note 3和Mate 7)
2:layout-sw600dp(适用于7“平板电脑)
3:layout-sw720dp(意图为8.9“和10”平板电脑)
4:布局小LDPI
5:布局正常LDPI
6:布局正常MDPI
7:layout-large-mdpi(适用于480×800手机屏幕> 5“,如Pantech Sky Vega Note)
8:布局正常HDPI
9:layout-large-hdpi(适用于Galaxy Note 2,Galaxy Note和Galaxy Mega)
10:布局正常xhdpi
11:布局正常xxhdpi
12:layout-large-xxhdpi(适用于Galaxy Note 4)
13:layout-normal-xxxhdpi(适用于Nexus 6和其他QFHD手机)
所有这些布局都有陆地模式。
放置时出现问题(layout-sw400dp)。 Nexus 6,Note 4,Note 2,Galaxy Mega和Large 480×800手机开始使用这种布局而不是预期的布局。
这是因为swdp的优先级高于layout-normal-xxxx或layout-large-xxxx。
Note 3和Mate 7是400dpi设备,这就是我放置layout-sw400dp的原因。在此之前,除了Note 3和Mate 7之外,所有设备都工作正常。
其他问题是分辨率为540×960的设备。
我尝试过layout-320dp。通过使用此xhdpi设备和xxhdpi设备开始使用此布局。
我也尝试过540×960的这些布局但是即使在为layout-long-port-800×480制作seprate文件夹后这些也没有用。
1:布局h960dp-w540dp
2:布局长端口960×540
3:布局正常-960×540
我通过创建具有实际规格的不同设备,从Android虚拟设备管理器中读取所有屏幕。
我尝试在java文件中手动设置540×960设备的布局并成功但我不想这样做,我也不想使用线性布局。
我已经彻底研究过“Android不同屏幕支持和提供资源”。
请告诉布局所有必需文件夹的名称以支持所有Android设备或使用java执行此操作的任何其他有效方法。
我已将所有资源文件上传到Mediafire,您可以下载Calculator Layout.zip
任何建议和解决方案将不胜感激
对不起英语,因为它不是我的母语。
答案 0 :(得分:4)
使用以下文件夹,而不是使用这么多简单的布局文件夹。
适用于智能手机
1.layout:正常
2.layout-hdpi:使用Nexus,Nexus S
3.layout-xhdpi:使用Nexus 4
4.layout-xxhdpi:使用Nexus 5
5.layout-xxxhdpi:使用Nexus 6
适用于平板电脑
1.layout-large:使用Nexus 7
2.layout-xlarge:使用Nexus 9
3.layout-xxlarge:使用Nexus 10
答案 1 :(得分:3)
使用以下文件夹
,而不是使用这么多布局文件夹适用于智能手机和平板手机
适用于7“片剂
对于10“片剂
如果您专注于创建这么多布局文件夹并最终创建如此多的布局文件,那么对于添加到Android系列中的每个新设备/屏幕规范来说,这将变得非常麻烦。
相反,请专注于优化您正在创建的布局以适应这些存储桶。例如在dp中提供值并避免给出大小/边距/填充的硬编码值,以有效的方式使用维资源文件等。
希望这会节省你的一些重复努力。
答案 2 :(得分:1)
我正在使用Only Three文件夹布局
- layout-sw600dp(适用于平板电脑) - layout-sw360dp(适用于中型手机) - 布局(对于宽度小于360的所有宽度)。
答案 3 :(得分:0)
对于不同的屏幕尺寸,以下是应用程序中的资源文件夹列表,它为不同的屏幕尺寸提供不同的布局设计,适用于小型,中型,高密度和超高密度屏幕。
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density
Manifest中的以下代码支持所有dpis。
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
有关详情,请参阅here