我有一种情况,如果 Android 设备是平板电脑,那么我希望启用方向(纵向和横向),而如果设备是手机,我希望方向仅处于纵向模式。你能帮我怎么做吗?
谢谢, 尼廷
我有一种情况,如果 Android 设备是平板电脑,那么我希望启用方向(纵向和横向),而如果设备是手机,我希望方向仅处于纵向模式。你能帮我怎么做吗?
谢谢, 尼廷
试试这个它非常适合我.....
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;
}
你有两种方法:
a) 分别为手机和平板电脑创建不同的布局和绘图集,并根据您需要的方向进行设计。
b) 在运行期间检查操作设备并设置方向。要检查设备,请检查以下参数并以编程方式设置方向,
(1) Build.VERSION.SDK_INT
(2) Configuration.SCREENLAYOUT_SIZE_MASK
您可以使用此类从系统属性中获取有关当前构建的设备信息。
要设置方向属性,请使用以下属性...
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"sensor" | "fullSensor" | "nosensor"]
获取设备屏幕的宽度和高度,如果分辨率小于平板,则可以将应用的方向设置为纵向。
如果需要活动像素的显示尺寸,可以使用 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 );
}
不要根据清单在清单中给出任何命令
安卓:屏幕方向
我自己只是这方面的初学者,但也许可以通过针对特定的 API 级别或 dpi 来做到这一点?您可以为您定位的不同设备提供备用资源。
例如:
res/layout/main.xml
res/layout-xhdpi/main.xml
res/layout-v11/main.xml
一个很好的文档可以在这里找到。