我的情况是手机和平板电脑的逻辑是相同的。但布局略有不同。我尝试使用以下代码
public static boolean findoutDeviceType(Context context)
{
return (context.getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK)>=
Configuration.SCREENLAYOUT_SIZE_LARGE;
}
Samsung Tab 10"的分辨率为 1280 * 800,S3 的分辨率为 1270 * 720。此代码将 Tab 和 Phone 的 Size 返回为 XLarge,因为其检查标准为 > 960 * 720。
我已经测试在 Res 的布局文件夹中插入相应的 UI 作为 Layout、Layout-Large 和 Layout-xLarge。但这无论如何都没有影响。在检查时,它从 Layout 文件夹中获取了 UI。
无论如何,即使我将 UI 放在不同的布局文件夹中,我也必须在类文件中检查它们以设置相应的 ContentView。
还有其他方法可以找到吗?
最佳答案
Android 培训中讨论了这个主题:
http://developer.android.com/training/multiscreen/screensizes.html#TaskUseSWQuali
归功于 ol_v_er对于这种简单易行的方法。
一些附加信息
您现在有标志表明您的应用程序是在手机还是平板电脑上运行。
我创建了两个包来处理 UI 及其功能,
com.phone
com.tablet
然后你将控制重定向到你需要的包
boolean tabletSize = getResources().getBoolean(R.bool.isTablet);
if (tabletSize) {
// do something
//Start activity for tablet
} else {
// do something else
//Start activity for phone
}
注意:我认为对于 10 英寸和 7 英寸屏幕的应用程序都从 res/values-sw600dp/
获取资源。但更具体地说,我认为对于 10 英寸平板电脑屏幕,我们可以使用 res/values-sw720dp/
<resources>
<bool name="isTablet">true</bool>
</resources>
关于android - 如何以编程方式在 Android 中查找平板电脑或手机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16784101/