AndroidAndroid开发经验谈Android开发

Android监听横竖屏切换

2018-02-23  本文已影响144人  奔跑吧李博

偶然在项目中用到播放视频时,需要横屏将视频全屏播放,所以需要监听屏幕的横竖屏切换事件。

横竖屏切换监听效果:


giphy (1).gif

ConfigChanges,用于捕获手机状态的改变,当横竖屏切换,屏幕尺寸变化,弹出键盘,系统设置改变等条件,就会触发回调事件onConfigurationChanged。让Activity捕捉到该事件,需要做如下步骤:

  1. 声明Activity需要捕捉的事件类型,在manifest的配置:
        <activity android:name=".MainActivity"
            android:configChanges="orientation|keyboard|layoutDirection|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

configChanges配置参数说明:

“mcc“ 移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别手机用户所属国家。
“mnc“ 移动网号,在一个国家或者地区中,用于区分手机用户的服务商。
“locale“ 所在地区发生变化。
“touchscreen“ 触摸屏已经改变。
“keyboard“ 键盘模式发生变化,例如:用户接入外部键盘输入。
“keyboardHidden“ 用户打开手机硬件键盘
“navigation“ 导航发生了变化。
“orientation“ 横竖屏切换。
“fontScale“ 全局字体大小缩放发生改变

  1. 重写Activity中的onConfigurationChanged方法,加上自己的处理事件。
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);

        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            Toast.makeText(getApplicationContext(), "横屏", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getApplicationContext(), "竖屏", Toast.LENGTH_SHORT).show();
        }
    }

Configuration.ORIENTATION_LANDSCAPE 竖屏
Configuration.ORIENTATION_PORTRAIT 横屏

另外:

上一篇下一篇

猜你喜欢

热点阅读