与绘制不同文件夹的方式相同,您可以为屏幕大小创建不同的布局。
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
从Android文档:http://developer.android.com/guide/practices/screens_support.html
编辑: 以编程方式检测设备是手机或平板电脑,您可以使用此代码:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
然后,在您的活动中,您可以根据之前的值设置不同的布局:
@Override
onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if isTablet(this)
setContentView(R.layout.handset_main_layout);
else
setContentView(R.layout.tablet_maint_layout);
}
这只是一个例子。
感谢您的回答,我有不同的大小限定符文件夹,正如我在问题中所说的,问题是我不明白Android是如何检查设备是“小”,“正常”,“大”或“xlarge”,如果它基于屏幕dp大小像文档让我相信那么480x800 mdpi手机和480x800 mdpi平板电脑是“大”,因为“大屏幕至少640dp x 480dp”,但我想要不同的布局手机和平板电脑 – Istigar
我已更新我的答案 – Manitoba