Android 屏幕方向监听
16lz
2021-01-23
正常情况下可以在 Activity 中能够监听到,但是如果是在Window上就不那么好监听了.
ok 首先说一下正常情况下 屏幕方向的监听 1. 在mainfest文件中得Activity中加入如下属性android:configChanges="orientation|screenSize" 如下:
额 还有一点需要说明的是, 入股哦没有 加上android:configChanges="orientation|screenSize” 的话, 那种每次屏幕发生变化都会导致Activity 重新初始化,走onCreate方法
如果想Activity 保持一个固定方向不变化的话可以加入以下属性: android:screenOrientation="portrait” 竖屏 android:screenOrientation=“landscape” 横屏
ok 下面讲在 Window上如何监听屏幕方向变化: 其实也没有什么好的方法, 只是每次屏幕变化都会到时View 重新layout 只能在layout的时候自己去获取屏幕放了
当然其实Window 也是可以保持屏幕的: 只要在相应的layoutParms 参数中加入如下:
不过这样会导致 Window下面的Activity 的方向页转不了了
ok 首先说一下正常情况下 屏幕方向的监听 1. 在mainfest文件中得Activity中加入如下属性android:configChanges="orientation|screenSize" 如下:
<activity android:name=".MainActivity" android:configChanges="orientation|screenSize" > <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter></activity>2. 在Activity 中重写onConfigurationChanged 方法如下:
@Overridepublic void onConfigurationChanged(Configuration newConfig) { LogUtil.e(TAG, "orientation = " + newConfig.orientation); super.onConfigurationChanged(newConfig);}这样就可以监听到 屏幕方向变化了, 不过还有一个问题就是, 它只能监听90度的变化, 如果 一个方向的横屏转到另一个方向的横屏监听不了, 即转了180的就监听不了, 因为这种的屏幕方向变化, 并不会导致Configuration 变化,
额 还有一点需要说明的是, 入股哦没有 加上android:configChanges="orientation|screenSize” 的话, 那种每次屏幕发生变化都会导致Activity 重新初始化,走onCreate方法
如果想Activity 保持一个固定方向不变化的话可以加入以下属性: android:screenOrientation="portrait” 竖屏 android:screenOrientation=“landscape” 横屏
ok 下面讲在 Window上如何监听屏幕方向变化: 其实也没有什么好的方法, 只是每次屏幕变化都会到时View 重新layout 只能在layout的时候自己去获取屏幕放了
addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { boolean isPortrait = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT; // 监听屏幕方向变化 }});
当然其实Window 也是可以保持屏幕的: 只要在相应的layoutParms 参数中加入如下:
mDanmakuViewParams.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
不过这样会导致 Window下面的Activity 的方向页转不了了
更多相关文章
- Android 图片显示与屏幕适配的问题
- Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
- Android 自定义UI-垂直方向的SeekBar
- android videoview视频铺满屏幕
- android 手势屏幕平移图片转换效果(也可以平移文本)
- Android 如何更换屏幕上锁界面背景图片
- Android之自定义Dialog屏幕旋转时自动关闭解决方法