制作特定于平板电脑的行为它是SCREENLAYOUT_SIZE还是我?

时间:2012-03-23 16:12:18

标签: android

我正在编写一款主要用于手机的应用,但有些用户会在平板电脑上使用。对于平板电脑用户,我想配置一些其他功能。我正在手机(Galaxy S手机 - 480 x 800)和平板电脑(Galaxy Tab 10.1“ - 800 x 1280)上进行测试。使用以下代码......

if ((getResources().getConfiguration().screenLayout &      
        Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {     
    Toast.makeText(this, "Tablet",Toast.LENGTH_LONG).show();

}
else if ((getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {     
    Toast.makeText(this, "Phone" , Toast.LENGTH_LONG).show();
} 
else   {
    Toast.makeText(this, "Neither" , Toast.LENGTH_LONG).show();
}

。 。 。手机出现“手机”,平板电脑“不”。但是the Android documentation表示SCREENLAYOUT_SIZE_LARGE是“至少大约480x640 dp单位。”

平板电脑上的BTW, getResources()。getConfiguration()表示screenWidthDp为1280,screenHeightDp为752.那么我怎么会错误地检测到平板电脑?

提前致谢。

1 个答案:

答案 0 :(得分:1)

刚刚在我的Galaxy Tab上测试过: 您还需要检查Configuration.SCREENLAYOUT_SIZE_XLARGE。