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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android如何在代码中判断横竖屏相关的知识,希望对你有一定的参考价值。

参考技术A 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了。

orientation属性判断横竖屏

 

  现在有一个需求:移动端网页默认竖屏显示,当用户横屏浏览,就给予相应提示,比如横屏时显示下面截图提示信息

  技术图片

 

  几年前,可能大家想到用 window.orientation 属性来实现,现官方已弃用,不做推荐,并且有了更好的实现方式—— orientation

  orientation: portrait(竖屏,即设备中的页面可见区域高度>=宽度)

  orientation: landscape(横屏,即设备中的页面可见区域高度<=宽度

 

 

  下面是一个很简单的 demo,有兴趣的小伙伴可以感受一下

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title>识别横竖屏</title>
        <style>
            @media (orientation: landscape) {
                body {
                    background-color: #ccc;
                }
            }
            
            @media (orientation: portrait) {
                body {
                    background-color: #000;
                }
            }
        </style>
    </head>

    <body>
    </body>

</html>

 

以上是关于android如何在代码中判断横竖屏的主要内容,如果未能解决你的问题,请参考以下文章

text android横竖屏切换判断活动是横屏还是竖屏

android编译的时候 是如何配置默认显示横竖屏

Android(十八)横竖屏的切换

Swift 支持某个页面横竖屏切换与强制横屏

Android 切换横竖屏

检测手机横竖屏切换