與繪製不同文件夾的方式相同,您可以爲屏幕大小創建不同的佈局。
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