0

是否可以在清单中区分平板电脑和手机:我想说平板电脑是否打开 tablet.class Java 文件或打开 phone.class 作为主屏幕。

我知道我可以根据平板电脑或手机进行 setcontentview,但问题是手机和平板电脑的布局名称和其他内容不同。

例如:

TabletActivity.xml

布局 1 和布局 2 有两个按钮。

但是对于PhoneActivity.xml

布局 1、布局 2、布局 3、布局 4,带有 4 个按钮。

因此,如果我使用相同的 JAVA 文件 - 我最终会得到带有条件的长代码 - 相反,如果我可以在一开始就区分这一点,例如如果平板电脑只打开 tablet.class 如果不打开 phone.class - 这对我来说会更容易吗?

再次:我可以在我的 mainactivity.java 文件中区分平板电脑和手机。我想知道我是否能够以明显的原因做到这一点,因为我有 20 个不同的主题,所以我有 20 个用于平板电脑和手机的不同 xml 文件和一个 java 文件(现在,我的 mainactivity 的 Oncreate - 在我检查 setcontent 之前如果是手机或平板电脑,然后是主题值并相应地设置内容)。我想知道有没有比这种方法更简单的方法???

还是我应该使用两个仅适用于手机或平板电脑的不同 APK?

这可能吗?

让我知道!

谢谢!

4

2 回答 2

0

试试这个代码。你可以得到屏幕英寸

String inputSystem;
inputSystem = android.os.Build.ID;
Log.d("hai",inputSystem);
Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated
Log.d("hai",width+"");
Log.d("hai",height+"");
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(width/dm.xdpi,2);
double y = Math.pow(height/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
Log.d("hai","Screen inches : " + screenInches+"");

之后,您只需通过 screenInches 决定什么是平板电脑和什么是手机

于 2013-09-30T13:42:51.967 回答
0

仅屏幕英寸不会做到这一点。许多设备处于“泥泞”的中间地带,可以称为“平板手机”。

我们使用布局来设置我们的设备。我们使用 res/layout-sw600dp 和 res/layout-sw720dp 文件夹。它们对应于最小宽度为 600 或 720 显示像素的设备,这对于 7" 或 10" 平板电脑尺寸来说是一个很好的决定因素

遵循使用此链接确定设备尺寸的 Android 指南会更好地为您服务

http://developer.android.com/guide/practices/screens-distribution.html

于 2013-09-30T13:56:28.267 回答