Android横竖屏处理的三种方式
来源:互联网 发布:淘宝无节操买家秀图片 编辑:程序博客网 时间:2024/05/16 17:40
Android 手机应用运行的时候,一般用户都是竖屏,突然将手机横屏的时候,那么程序会出现异常,因为在Android中每次屏幕切换都会,重启当前的Activiy,这种情况下,异常的处理方式有三种:
1.锁定横竖屏
在AndroidManifest.xml文件中,对Activity定义屏幕方向属性只能为横屏或竖屏。
将屏幕固定为横屏:
<activity android:screenOrientation="portrait">
将屏幕固定为竖屏:
<activity android:screenOrientation="landscape">
因为一个Android应用中会有多个Activity,那么可以根据需要去配置每个activity的显示方式,如果不设置,默认可以横竖屏切换,或在源代码中横竖屏。
设置竖屏:
SetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
设置横屏:
SetRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
2.源代码中处理横竖屏事件
在AndroidManifest.xml文件中对Activity注册android:configChanges属性,然后在对应的Activity源代码中重写onConfigurationChanged()函数即可
@Override public void onConfigurationChanged(Configuration newConfig){ super.onConfigurationChanged(newConfig); if(this.getResources().getConfiguration().oritention==Configuration.ORITENTION.LANDSCAPE){ Log.e("Himi","当前屏幕切换成横屏显示模示"); } else if (this.getResources().getConfiguration().oritention==Configuration.ORITENTION.PORTRAIT){ Log.e("Himi","当前屏幕切换成竖屏显示模示"); } }使用此方式在切换横竖屏的时候,Android就不会重启当前Activity了。
3. 重写onSaveInstanceState() 与 onRestoreInstanceState()函数
@Override public void onSaveInstanceState(Bundle outState){ super.onSaveInstanceState(outState); Log.e("Himi","ONSAVE"); } @Override public void onRestoreInstanceState(Bundle outState){ super.onRestoreInstanceState(outState); Log.e("Himi","RESTORE"); }
在屏幕进行横竖屏切换的时候,会响应onSaveInstanceState()函数,然后重启进入当前Activity,最后再执行onRestoreInstanceState函数,通过切换这两个函数进行屏幕横竖屏的处理。
如觉得文章不错,可扫描以下二维码打赏,以激励上传更好的开源代码:
- Android横竖屏处理的三种方式
- 横竖屏切换和contentView的三种显示方式
- Android 横竖屏处理
- android横竖屏处理
- Android横竖屏改变布局的常见两种方式
- Android 横竖屏随意切换的两种方式
- Android实现横竖屏、全屏的几种方式
- Android-->播放视频横竖屏切换的2种方式
- android 横竖屏的 处理 转
- Android 横竖屏切换的处理
- Android杂谈--layout的横竖屏处理
- Android杂谈--layout的横竖屏处理
- android事件处理的三种方式
- 安卓横竖屏切换的处理方式
- android横竖屏切换处理
- Android 处理横竖屏切换
- android横竖屏切换处理
- android横竖屏切换、键盘推出状态改变的处理
- 1415: [Noi2005]聪聪和可可
- 阿里巴巴首部记录片问世:看哭所有创业者!
- 数据库事务
- 【剑指offer】题61:之字打印二叉树
- C++调试输出
- Android横竖屏处理的三种方式
- Ceph网络模块(2)
- 拨开字符编码的迷雾--编译器如何处理文件编码
- 口述H.264编码器框架
- 私服安装以及局域网中资源管理库的访问与使用
- Java中String与byte[]的转换
- 几种生成随机数的方法
- Linux系统启动流程
- 排序算法总结与代码实现