正常情况下可以在 Activity 中能够监听到,但是如果是在Window上就不那么好监听了.
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 的方向页转不了了


更多相关文章

  1. Android 图片显示与屏幕适配的问题
  2. Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容
  3. Android 自定义UI-垂直方向的SeekBar
  4. android videoview视频铺满屏幕
  5. android 手势屏幕平移图片转换效果(也可以平移文本)
  6. Android 如何更换屏幕上锁界面背景图片
  7. Android之自定义Dialog屏幕旋转时自动关闭解决方法

随机推荐

  1. Android(安卓)KTX简介
  2. Binder 与AIDL
  3. Android(安卓)获取IP地址的实现方法
  4. Android(安卓)Studio下的build工具路径和
  5. android ListView 几个重要属性
  6. android平台解析epub格式的书籍信息
  7. android评分条RatingBar自定义设置
  8. Android(安卓)Framework入门介绍
  9. Android(安卓)VideoView简单播放视频
  10. Android之fill_parent和wrap_content