我有一种情况,其中,如果Android设备是平板电脑,那么我希望启用方向(纵向和横向),而如果设备是手机,我希望方向仅在纵向模式。 你能帮帮我怎么做吗?
谢谢, 尼西
答案 0 :(得分:1)
您有两种方法:
a)分别为手机和平板电脑创建不同的布局和绘图,并根据您需要的方向进行设计。
b)在运行期间检查操作设备并设置方向。要检查设备,请检查以下参数并以编程方式设置方向
(1) Build.VERSION.SDK_INT
(2) Configuration.SCREENLAYOUT_SIZE_MASK
答案 1 :(得分: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;
}
答案 2 :(得分:0)
您可以使用this类来获取有关当前版本的设备信息,这些信息是从系统属性中提取的。
要设置方向属性,请使用以下属性...
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"sensor" | "fullSensor" | "nosensor"]
答案 3 :(得分:0)
获取设备屏幕的宽度和高度,如果分辨率低于平板电脑,则可以将应用的方向设置为纵向。
如果需要以活动像素为单位的显示尺寸,可以使用getSize:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
如果不是活动,您可以通过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 );
}
不要在清单中根据
给出任何命令机器人:screenOrientation
答案 4 :(得分:0)
我自己只是一个初学者,但也许可以通过定位特定的API级别或dpi来实现这一目标?您可以为要定位的不同设备提供备用资源。
例如:
res/layout/main.xml
res/layout-xhdpi/main.xml
res/layout-v11/main.xml
可以找到一份好的文档here。