我在 layout 和 layout-xlarge 文件夹中有 main.xml。在 Galaxy Note 等屏幕更宽的手机中,我想使用 layout-xlarge 文件夹中的 main.xml。如何重定向 android 系统以根据条件从代码动态使用该特定布局文件?
例如:如果某些条件为真,则使用布局文件夹中的 main.xml 文件,如果为假,则使用 layout-xlarge 文件夹中的 main.xml。
我在 layout 和 layout-xlarge 文件夹中有 main.xml。在 Galaxy Note 等屏幕更宽的手机中,我想使用 layout-xlarge 文件夹中的 main.xml。如何重定向 android 系统以根据条件从代码动态使用该特定布局文件?
例如:如果某些条件为真,则使用布局文件夹中的 main.xml 文件,如果为假,则使用 layout-xlarge 文件夹中的 main.xml。
如果您使用XHDPI设备,您将无法重定向 Android 系统,它会从layout-xhdpi 获取。例如,三星 S3会将布局作为layout-xhdpi .. 它总是取决于设备密度。
假设 DPI 为 120dpi - layout-ldpi
DPI 为 160dpi - layout-mdpi
DPI 为 240 和 256dpi - 布局-hdpi
DPI > 256dpi - layout-xhdpi
以上所有给定值都是近似值。
快速解决方案:
复制 main.xml 并将其命名为 main_phone_large.xml
然后在你的主要活动中。
//whatever width you decide for
if(getResources().getDisplayMetrics().widthPixels > 500){
setContentView(R.layout.main_phone_large.xml);
}else
setContentView(R.layout.main.xml);
你不用做任何事情,只要你为不同的密度提供不同的布局,系统会自动选择适合设备屏幕的布局。您也不必为所有密度提供布局。如果某些元素不需要不同的布局,只需在布局文件夹中创建一个 xml,它将用于所有屏幕密度。
我强烈建议你阅读官方文档的这个页面:http: //developer.android.com/guide/practices/screens_support.html