屏幕旋转

iOS系统自带的 **UIAlertView** 以及 屏幕自动旋转的实现

一笑奈何 提交于 2020-03-13 21:36:32
#iOS系统自带的 UIAlertView 自动旋转的实现 这里主要解析 UIAlertView 的几个关键功能的实现: 随着设备屏幕的旋转而旋转; Alert弹出框,使用UIWindow来实现,就是说,不用依赖于当前显示在最前面的UIView。 实现源码参考: http://git.oschina.net/shede333/BMAlertHud ###使用UIWindow 弹出一个Alert框,最好新建一个 UIWIndow , 把window.windowLevel = UIWindowLevelAlert,这样就能显示在最前面; 调用 [window makeKeyAndVisible] ,该window就能显示, 调用 [window resignKeyWindow] ,该window就能消失,转而显示之前的window, 尽量不要直接设置 [window addSubview:alertView] ,直接往window上加UIView,屏幕旋转时会有问题;因为,屏幕旋转时,app会依次调用 key-window -> window.rootViewController ,所以,在new一个UIWindow是,最好也给window设置一个rootViewController, 然后把你需要显示的AlertView 贴在rootViewController.view上

如何在横竖屏切换时Activity内容不变

笑着哭i 提交于 2019-12-17 00:51:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 众所周知,默认情况下,从水平变为垂直,Android的操作过程为关闭Activity,再在当前方向打开此Activity。此过程一般而言没有什么不妥,只是会带来一个问题:用户数据丢失,也就是说,Activity 重启,必然使得内容初始化。补救措施是在变换方向时保存当前内容,如webview的url等。 这种做法当然不够好玩。 正确的做法是,配置Activity的变化状态(这么说可能不大准确。),在AndroidManifest.xml中,对于每一个Activity的配置,有一个属性,android:configChanges=""。这个属性的官方解释是 通过 设置 这个属性可以使Activity捕捉设备状态变化,以下是可以被识别的内容: CONFIG_FONT_SCALE CONFIG_MCC CONFIG_MNC CONFIG_LOCALE CONFIG_TOUCHSCREEN CONFIG_KEYBOARD CONFIG_NAVIGATION CONFIG_ORIENTATION 那么,如下配置则可以完成我们想要的结果: 补充: 每一个config的具体说明: Value Description “ mcc “ The IMSI mobile country code (MCC) has changed —

Android 禁止屏幕旋转 & 旋转屏幕时保持Activity内容

谁说胖子不能爱 提交于 2019-12-06 17:36:10
1.在应用中固定屏幕方向。 在AndroidManifest.xml的activity中加入: android:screenOrientation=”landscape” 属性即可(landscape是横向,portrait是纵向)。 OK 2.随屏幕旋转时,不重新调用onCreate。 当将手机屏幕旋转时, 系统会 被强制重置启动onCreate 方法 。 1)修改AndroidManifest.xml 在activity属性中加入: android:configChanges=”orientation|keyboardHidden” android:configChanges ,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。 orientation ,屏幕界面旋转(可能是用户手动旋转的),【注意:如果你的开发API等级等于或高于13,你还需要设置screenSize,因为screenSize会在屏幕旋转时改变】 keyboardHidden ,键盘辅助功能改变 2) 在相对应的Activity中继承重写onConfigurationChanged方法,这个方法将会在我们的应用发生变化时,让我们能随心所谓地进行监听处理。 public void onConfigurationChanged(Configuration