Android App屏幕兼容性

时间:2014-02-17 14:08:59

标签: android android-layout

我目前正在开发一个应用程序,它可能会在所有Android设备上使用。我发现根据不同的屏幕尺寸调整我的XML布局文件真的很有挑战性。我在这个主题上浏览了很多,并在Developer网站找到了一个有用的文档。该文档很不错,并提供了有关屏幕兼容性应该做什么的足够信息。

问题:

1.如果我在 res / layout-sw600dp res / layout-sw720dp 等文件夹中有两种不同的布局,应用会自动决定这些布局中的哪一种是用吗?

2.假设我更喜欢手机的ListView和Tabs for Tabs作为主页显示,我将如何定义我的布局以及如何将它们用于UI?

关于如何解决第二个问题的功能的任何想法将受到高度赞赏。提前致谢。

4 个答案:

答案 0 :(得分:1)

您可以通过选中“hasHoneycomb”在java中对其进行区分,制表符会将tru作为返回值。一种方法是:您可以根据条件从setcontentview()设置不同的布局。

if(hasHoneycomb()) {
setcontentView(layout_for_tabs);
} else {
setcontentView(layout_for_phones);
}

答案 1 :(得分:0)

是的,app会自动决定用于当前设备屏幕的布局文件。

为ListView和GridView提供不同的ID。在代码中使用findViewById()方法创建视图时。 如果找到了ListView(findViewById(R.id.list)返回View)应用程序正在手机上运行,​​否则(findViewById(R.id.list)返回null并且findViewById(R.id.grid)返回View)应用程序正在平板电脑上运行。

答案 2 :(得分:0)

1)是的,它将根据屏幕尺寸。

2)给他们不同的ID,看看哪一个可见:

ListView mList = (ListView) findViewById( R.id.homeList );
GridView mGrid = (GridView) findViewById( R.id.homeGrid );

if( mList != null ) {
    // set list adapter
} else if( mGrid != null ) {
    // set grid adapter 
} else {
    // neither view exists...
}

答案 3 :(得分:-1)

对于问题1,是的Android会自动选择并决定两者中最合适的。

对于2,这是链接 - Determine if the device is a smartphone or tablet? 希望能帮助到你。 :)