6

我有一种情况,如果 Android 设备是平板电脑,那么我希望启用方向(纵向和横向),而如果设备是手机,我希望方向仅处于纵向模式。你能帮我怎么做吗?

谢谢, 尼廷

4

5 回答 5

1

试试这个它非常适合我.....

if ( isXLargeScreen() )
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

这个函数在平板电脑和手机之间做出决定,在上面的 IF 中调用.....

public static boolean isXLargeScreen(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
} 
于 2013-09-18T07:42:32.800 回答
1

你有两种方法:

a) 分别为手机和平板电脑创建不同的布局和绘图集,并根据您需要的方向进行设计。

b) 在运行期间检查操作设备并设置方向。要检查设备,请检查以下参数并以编程方式设置方向,

  (1) Build.VERSION.SDK_INT
  (2) Configuration.SCREENLAYOUT_SIZE_MASK
于 2012-03-21T12:38:55.427 回答
0

您可以使用此类从系统属性中获取有关当前构建的设备信息。

要设置方向属性,请使用以下属性...

android:screenOrientation=["unspecified" | "user" | "behind" |
                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "sensor" | "fullSensor" | "nosensor"]
于 2012-02-13T06:57:13.413 回答
0

获取设备屏幕的宽度和高度,如果分辨率小于平板,则可以将应用的方向设置为纵向。

如果需要活动像素的显示尺寸,可以使用 getSize:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如果不是 Activity,您可以通过 WINDOW_SERVICE 获取默认显示:

WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

if(width<= (resolution width of tablet) && height<=(resolution height of tablet))
{
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT );
}

不要根据清单在清单中给出任何命令

安卓:屏幕方向

于 2012-02-13T07:00:03.363 回答
0

我自己只是这方面的初学者,但也许可以通过针对特定的 API 级别或 dpi 来做到这一点?您可以为您定位的不同设备提供备用资源。

例如:

res/layout/main.xml
res/layout-xhdpi/main.xml
res/layout-v11/main.xml

一个很好的文档可以在这里找到。

于 2012-02-13T07:00:25.187 回答