我返现,90度横屏 旋转到270度横屏onConfigurationChanged 是收不到回掉的。尽管清单里面声明了什么:

android:configChanges=”orientation|keyboardHidden|navigation|screenSize|layoutDirection|smallestScreenSize|screenLayout|mnc”

没用。

那怎么办? 通过监听手机旋转,自己判断吧:

    private int mIsLandRightOrientation = -1;            //是否已经处于横屏状态,-1为未初始化,1为非左横屏(手机刘海朝左边的情况,即90度),2为右横屏(手机刘海朝右边的情况,及270度)

    private OrientationEventListener mOrientationEventListener; //旋转监听 因为异形屏需要知道横屏从90旋转到了270 而添加
private Display mDisplay; mOrientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_STATUS_ACCURACY_LOW){
@Override
public void onOrientationChanged(int orientation) {
int ro = orientation % 360;
// 设置横屏 260
if (((ro > 260) && (ro < 315))) {//当前手机刘海方向朝左边的情况
if (mIsLandRightOrientation == 2 || mIsLandRightOrientation == -1) {//如果说之前的方向是右边,往下处理 否则不处理
if (getScreenRotationOnPhone() == Surface.ROTATION_90) {//如果当前屏幕的布局方向是相左,说明屏幕旋转了 那么进去处理paddding
mIsLandRightOrientation = 1;
adjustPadding();
}
}
}else if((ro > 80 && ro < 135)){//手机刘海朝右边的情况
if (mIsLandRightOrientation == 1 || mIsLandRightOrientation == -1) {
if (getScreenRotationOnPhone() == Surface.ROTATION_270) {
mIsLandRightOrientation = 2;
adjustPadding();
}
}
}
}
};
mOrientationEventListener.enable(); private int getScreenRotationOnPhone() {
if (mDisplay == null) {
mDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
}
return mDisplay!=null ? mDisplay.getRotation():-1;
}

原理就是通过监听手机旋转,然后在根据屏幕方向,精确判断手机横屏90度到270的转换。

Android onConfigurationChanged 收不到回调的更多相关文章

  1. android onConfigurationChanged讲解

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 相信大家对这个属性已经耳熟能详,如果大家受过转屏的折磨的话! 老规矩,先讲讲官方文档是怎么说的.为什 ...

  2. Android onConfigurationChanged的作用

    API原文说明: android:configChangesLists configuration changes that the activity will handle itself. When ...

  3. ZT ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01

    ANDROID jni 中的事件回调机制JNIenv的使用 2012-09-10 12:53:01 分类: 嵌入式 android framework 里java调用native,使用JNI机制,ja ...

  4. android onConfigurationChanged的那点事

    Android学习笔记——关于onConfigurationChanged   从事Android开发,免不了会在应用里嵌入一些广告SDK,在嵌入了众多SDK后,发现几乎每个要求在AndroidMan ...

  5. Android开发学习之路-回调机制学习笔记

    不知道是我学Java的时候没有认真听还是怎么的,曾经一直不知道什么是“回调”,它有什么用,百度一大堆,都太复杂看不明白(好吧是我笨),所以想把自己理解的分享给其他看到的人,大家都真正认识一下这个重要的 ...

  6. Android开发学习之路-回调实现Service向activity传递数据

    开启服务的时候,如果我们是通过bindService来绑定服务并且要向服务传递数据,可以直接在Intent中设置bundle来达到效果,但是如果是我们需要从服务中返回一些数据到Activity中的时候 ...

  7. Android onConfigurationChanged(Configuration cfg) 无法触发问题

     1.android:configChanges="orientation|keyboardHidden"的使用  当在activity加上android:configChange ...

  8. Android事件侦听器回调方法浅谈

    http://developer.51cto.com/art/201001/180846.htm Android事件侦听器作为视图View类的接口,其中包含有不少回调方法,比如:onClick():o ...

  9. Android中callback(接口回调)机制

    事实上,callback 机制在Android 中无处不在,特别是以Handler.Callback.Listener这三个词结尾的,都是利用callback机制来实现的.比方点击事件onClickL ...

随机推荐

  1. python模块详解 re

    摘自:python中的正则表达式(re模块) 一.简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被 ...

  2. django orm 时间字段讲解

    创建django的model时,有DateTimeField.DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime().date().time()三中对象 ...

  3. Azure 7 月新公布

    Azure 7月新发布:Cosmos DB,事件中心捕捉功能,Hybrid Connections,流量管理器快速故障转移功能. 您现有的 DocumentDB 资源现已作为 Azure 门户上 Az ...

  4. 2017年10月31日结束Outlook 2007与Office 365的连接

    2017 年10月31日 ,微软即将推出 Office 365中Exchange Online邮箱将需要Outlook for Windows的连接,即通过HTTP Over MAPI方式,传统使用R ...

  5. mysql一些常用的查询语句总结

    工作中会遇到一些比较有用的mysql查询语句,有了它,可以对mysql进行更全面的维护和管理,下面就写一下我记录的 1.按照字段ru_id查询dsc_order_goods表中ru_id出现次数由多到 ...

  6. Simotion应用案例,使用Simotion web server调试,使用Project Generator创建项目,Simosim模拟运行运行项目

    Simotion web server simotion项目设计和调试过程中,web server功能越来越常用.例如Project generator生成的FBAxis, winder, print ...

  7. .net core 下调用.net framework框架的WCF方法写法

    通过添加服务引用后生成的代码,可以得知首先要设置Basic连接写法的属性,并且设置WCF服务的地址: 我在这里建立工厂类如下: using System; using System.ServiceMo ...

  8. Android(java)学习笔记70:TabActivity使用

    1.首先我们要知道TabActivity是结合TabHost使用的,于是我们自然而然要说明一下TabHost 所谓的TabHost是提供选项卡(Tab页)的窗口视图容器. 此对象包含两个子对象: 一个 ...

  9. 45. 腾讯面试题: 使用hashmap 插入数据,怎么样依照插入数据的顺序输出数据

    题目:使用hashmap 插入数据,怎么样依照插入数据的顺序输出数据 分析: 使用hashmap插入数据,数据的顺序会改变.能够写个小程序试试. 那怎么样依照插入的顺序输出呢? 方法一: 这是我第一时 ...

  10. DP,得到最多苹果,(POJ2385)

    题目链接:http://poj.org/problem?id=2385 题意: 牛在两棵苹果树下收集苹果,牛只能在这两棵树之间走动w次,在t时刻,某棵树会掉下苹果. 解题报告: ///dp[t][w] ...