2

我在 layout 和 layout-xlarge 文件夹中有 main.xml。在 Galaxy Note 等屏幕更宽的手机中,我想使用 layout-xlarge 文件夹中的 main.xml。如何重定向 android 系统以根据条件从代码动态使用该特定布局文件?

例如:如果某些条件为真,则使用布局文件夹中的 main.xml 文件,如果为假,则使用 layout-xlarge 文件夹中的 main.xml。

4

3 回答 3

2

如果您使用XHDPI设备,您将无法重定向 Android 系统,它会从layout-xhdpi 获取。例如,三星 S3会将布局作为layout-xhdpi .. 它总是取决于设备密度。

假设 DPI 为 120dpi - layout-ldpi

DPI 为 160dpi - layout-mdpi

DPI 为 240 和 256dpi - 布局-hdpi

DPI > 256dpi - layout-xhdpi

以上所有给定值都是近似值。

于 2012-08-28T12:08:49.810 回答
1

快速解决方案:

  1. 复制 main.xml 并将其命名为 main_phone_large.xml

  2. 然后在你的主要活动中。

    //whatever width you decide for 
    if(getResources().getDisplayMetrics().widthPixels > 500){
    setContentView(R.layout.main_phone_large.xml);
    }else
    setContentView(R.layout.main.xml);
    
于 2012-08-28T12:07:32.850 回答
1

你不用做任何事情,只要你为不同的密度提供不同的布局,系统会自动选择适合设备屏幕的布局。您也不必为所有密度提供布局。如果某些元素不需要不同的布局,只需在布局文件夹中创建一个 xml,它将用于所有屏幕密度。

我强烈建议你阅读官方文档的这个页面:http: //developer.android.com/guide/practices/screens_support.html

于 2012-08-28T12:09:03.550 回答