导航:首页 > 操作系统 > android获取屏幕方向

android获取屏幕方向

发布时间:2022-05-21 16:22:31

android如何在代码中判断横竖屏

Android中判断横竖屏是通过Configuration
这个类来判断的。
1.
Configuration.ORIENTATION_
LANDSCAPE

表示横屏。
2.
Configuration.ORIENTATION_PORTRAIT表示竖屏。
以下是完整代码:
public
boolean
isScreenChange()
{
Configuration
mConfiguration
=
context.getResources().getConfiguration();
//获取设置的配置信息
int
ori
=
mConfiguration.
orientation

;
//获取屏幕方向
if(ori
==
Configuration.ORIENTATION_LANDSCAPE){
//横屏
return
true;
}else
if(ori
==
Configuration.ORIENTATION_PORTRAIT){
//竖屏
return
false;
}
return
false;
}
避免在转屏时重启Activity
android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次
Create的时候载入配置,那样,进行中的游戏就不会自动重启了!
要避免在转屏时重启Activity,可以通过在AndroidManifest.
xml文件
中重新定义方向(给每个Activity加上 android:configChanges=”keyboardHidden|orientation”属性)。
在需要控制屏幕显示方向的Activity中重写 onConfigurationChanged(Configuration
newConfig)方法,这样在转屏时就不会重启Activity了。

Ⅱ android 强制设置横屏 判断是横屏还是竖屏

判断activity 是横屏还是竖屏 方法 1: //根据设备配置信息 Configuration cf= this.getResources().getConfiguration(); //获取设置的配置信息 int ori = cf.orientation ; //获取屏幕方向 if(ori == cf.ORIENTATION_LANDSCAPE){ //横屏 }else if(ori == cf.ORIENTATION_PORTRAIT){ //竖屏 } 方法2: 通过设备分辨率还判断 DisplayMetrics dm = new DisplayMetrics(); mLauncher.getWindowManager().getDefaultDisplay().getMetrics(dm); mWidth = dm.widthPixels; mHeight = dm.heightPixels; if (mHeight > mWidth){//layout port // 竖屏 ....... }else{//layout land // 横屏 ....... } 设置程序 横屏还是竖屏 有两种方法 1:通过配置实习 2: 代码实现 方法2://重写activity onResume方法 @Override protected void onResume() { /** * 设置为横屏 */ if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :横 //SCREEN_ORIENTATION_PORTRAIT:竖 } super.onResume(); } 方法2: 配置androidManifest.xml实现 在activity 中加入 android:screenOrientation="landscape" 信息即可 该属性有两个值 portrait//竖 landscape//横 <activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape"> </activity> 搞定 快去试试 吧 不过细心的朋友 会发现 咦 当我屏幕的方向 发生变化的时候为啥 activity 的onCreate 怎么会重新加载呢 原因是: 由于屏幕的旋转会造出 当然的activity 元素关闭 从而造出activity重新加载 ,显然这有时候并不是我们要的效果 , 那我们 在看看 如果解决这个问题吧 我们在androidManifest.xml 文件中 activity 节点加入红色的 属性 <activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:configChanges="orientationkeyboardHidden"> </activity> 1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次 2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次 3、设置Activity的android:configChanges="orientationkeyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法 同时在Activity的Java文件中重载onConfigurationChanged(Configuration newConfig)这个方法,这样就不会在布局切换或窗口切换时重载等方法。代码如下: @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { //land } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { //port } } //------------------------------------------------------ 关于Android中Activity的横竖屏切换问题可以通过AndroidManifest.xml文件中的Activity来配置: android:screenOrientation=["unspecified" "user" "behind" "landscape" "portrait" "sensor" "nonsensor"] screenOrientation 用来指定Activity的在设备上显示的方向,每个值代表如下含义: "unspecified" 默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向. "landscape" 横屏显示(宽比高要长) "portrait" 竖屏显示(高比宽要长) "user" 用户当前首选的方向 "behind" 和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) "sensor" 有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。 "nosensor" 忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。

Ⅲ 如何检测Android主屏幕的旋转

三星手机开启/关闭屏幕旋转的操作方法:
1.双指下拉顶帘,查找“屏幕旋转”图标,将其点绿即可开启,反之关闭。
2.也可打开手机设定-显示-查找“屏幕旋转”-开启/关闭即可。

Ⅳ Android怎样判断当前屏幕是否为横屏状态

Configuration mConfiguration = this.getResources().getConfiguration(); //获取设置的配置信息int ori = mConfiguration.orientation; //获取屏幕方向if (ori == mConfiguration.ORIENTATION_LANDSCAPE) { //横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//强制为竖屏} else if (ori == mConfiguration.ORIENTATION_PORTRAIT) { //竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//强制为横屏}

Ⅳ android开发中怎么指定程序屏幕方向

在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android:screenOrientation=”landscape” 属性。 参数说明: landscape = 横向 portrait = 纵向 避免在转屏时重启Activity android中每次屏幕方向切换时都会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次 Create的时候载入配置,那样,进行中的游戏就不会自动重启了! 要避免在转屏时重启Activity,可以通过在AndroidManifest.xml文件中重新定义方向(给每个Activity加上 android:configChanges=”keyboardHiddenorientation”属性)。 在需要控制屏幕显示方向的Activity中重写 onConfigurationChanged(Configuration newConfig)方法,这样在转屏时就不会重启Activity了。

Ⅵ 安卓手机屏幕翻转在哪儿设置

可以打开手机,在手机的上方向边用一根手指轻轻点住往下一划,就会出现一些简易设置,


有方向锁定,点一下变成蓝色就可以了。如果没有这功能,可以打开手机,在手机里找设置一项,打开设置找屏幕管理类的项目,也是找到方向锁定打开即可。

Ⅶ Android项目中能否判断手机屏幕是 朝上 还是 朝下

// 获取手机横竖屏的方法
public boolean isScreenChange() {
Configuration mConfiguration = this.getResources().getConfiguration(); // 获取设置的配置信息
int ori = mConfiguration.orientation; // 获取屏幕方向
if (ori == Configuration.ORIENTATION_LANDSCAPE) {
// 横屏
return true;
} else if (ori == Configuration.ORIENTATION_PORTRAIT) {
// 竖屏
return false;
}
return false;
}
这个方法来判断是否是横竖屏

Ⅷ Android项目中能否判断手机屏幕是 朝上 还是 朝下!!!!

可以的。可以获取屏幕的方向、

Ⅸ android7.1.2系统怎么设置屏幕方向

摘要 方法一:在AndroidManifest.xml中配置

Ⅹ android 不是activity怎么监测屏幕旋转

Camera相关的程序,被屏幕旋转搞得头大,一方面得考虑屏幕旋转后布局的变化,另一方面得搞清楚屏幕的旋转方向、角度与Camera的Preview角度的关系。本来通过重载Activity的onConfigurationChanged方法,可以检测到屏幕旋转,但发现有一个问题,它只能检测水平方向与垂直方向的切换,无法检测180度的跳转(例如:水平方向突然转180度到水平方向),所以最后不得不换成OrientationEventListener方法来解决问题。在这里分享下经验,并就此顺便总结下Android开发中屏幕旋转的处理吧。

1. 不做任何处理的情况下

如果没有针对性地做任何处理的话,默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致app的当前activity发生onDestroy-> onCreate,会重新构造当前activity和界面布局,很多横屏/竖屏的布局如果没有很好的设计的话,转换为竖屏/横屏后,会显示地很难看。

如果想很好地支持屏幕旋转,则建议在res中建立layout-land和layout-port两个文件夹,把横屏和竖屏的布局文件放入对应的layout文件夹中。

2. 如何设置固定的屏幕方向

在AndroidManifest.xml对应的 activity 属性中,添加:

android:screenOrientation="landscape" //横屏
android:screenOrientation="portrait" //竖屏

那么,默认的情况下,应用启动后,会固定为指定的屏幕方向,即使屏幕旋转,Activity也不会出现销毁或者转向等任何反应。

3. 强制开启屏幕旋转效果

如果用户的手机没有开启重力感应器或者在AndroidManifest.xml中设置了android:screenOrientation,默认情况下,该Activity不会响应屏幕旋转事件。如果在这种情况下,依然希望Activity能响应屏幕旋转,则添加如下代码:

// activity的 onCreate 函数中
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);

4. 屏幕旋转时,不希望activity被销毁

如果希望捕获屏幕旋转事件,并且不希望activity 被销毁,方法如下:

(1)在AndroidManifest.xml对应的activity属性中,添加:

android:configChanges="orientation|screenSize"

(2)在对应的activity中,重载函数onConfigurationChanged

@Override
public voidonConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}

在该函数中可以通过两种方法检测当前的屏幕状态:

第一种:

判断newConfig是否等于Configuration.ORIENTATION_LANDSCAPE,Configuration.ORIENTATION_PORTRAIT

当然,这种方法只能判断屏幕是否为横屏,或者竖屏,不能获取具体的旋转角度。

第二种:

调用this.getWindowManager().getDefaultDisplay().getRotation();

该函数的返回值,有如下四种:

Surface.ROTATION_0,Surface.ROTATION_90,Surface.ROTATION_180,Surface.ROTATION_270

其中,Surface.ROTATION_0 表示的是手机竖屏方向向上,后面几个以此为基准依次以顺时针90度递增。

(3) 这种方法的Bug

最近发现这种方法有一个Bug,它只能一次旋转90度,如果你突然一下子旋转180度,onConfigurationChanged函数不会被调用。

阅读全文

与android获取屏幕方向相关的资料

热点内容
单片机有4个8位的io口 浏览:895
win10rar解压缩软件 浏览:164
plc教程pdf 浏览:665
pythonshell清屏命令 浏览:278
检测到加密狗注册服务器失败 浏览:203
解压后手机如何安装 浏览:518
极客学院app为什么下架 浏览:13
图片批量压缩绿色版 浏览:651
东北程序员帅哥 浏览:707
加密封条风噪小 浏览:974
安阳少儿编程市场 浏览:499
云服务器建设原理 浏览:259
javajunit4for 浏览:847
华为服务器如何进阵列卡配置 浏览:435
apache服务器ip地址访问 浏览:720
如何买到安卓手机预装软件 浏览:537
冤罪百度云不要压缩 浏览:88
苏州云存储服务器 浏览:177
解压收纳原声 浏览:387
java注册验证 浏览:377