2012-03-23 116 views
-1

我正在编写一个应用程序,主要用于手机,但有些用户会在平板电脑上使用。对于平板电脑用户,我想配置一些附加功能。我在手机上测试它(的Galaxy S手机 - 480×800)和平板电脑(Galaxy Tab的10.1" - 800×1280)。。。。。使用下面的代码制作平板电脑的特定行为。是SCREENLAYOUT_SIZE还是我?

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是“在至少约480×640 dp单位。”

BTW,getResources()。getConfiguration()上平板电脑说screenWidthDp是1280和screenHeightDp是752.那么我做错了,平板电脑没有被检测到?

在此先感谢。

回答

1

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

+0

我收到XLARGE的编译错误 - 它何时被引入? – user316117 2012-03-23 16:30:41

+0

我觉得蜂窝。您可以使用常数代替:4(0x00000004) – Renard 2012-03-23 16:43:47

+0

优秀(0x00000004)的作品!谢谢。 – user316117 2012-03-23 16:55:00

相关问题