onConfigurationChanged--基于回调的事件处理方法demo案例
来源:互联网 发布:淘宝嘉年华什么活动 编辑:程序博客网 时间:2024/05/21 23:34
目标:通过点击按钮实现屏幕横竖屏的切换,同时更换图片。
知识点:点击事件的运用,更改系统权限的设置以及onConfigurationChanged回调事件的学习。
案例源码分析:MainActivity.java
单击事件代码:
button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {// 表明无法旋转屏幕button.setText("错误");} else {if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {// 表明是横屏让它竖屏显示setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);} else if (getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {// 表明是竖屏让它横屏显示setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}}}});
以上代码调用了Activity类的getRequestedOrientatiion方法获取当前屏幕的方向以及ActivityInfo类的常量进行屏幕横竖屏的设置。
只有这样还不够,因为操作了系统设置则需要在AndroidMainfest.xml中配置权限:
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
这样就能实现点击按钮进行屏幕的切换,如果需要横竖屏切换时更改图片则需要重写onConfigrationChanged方法:
@Overridepublic void onConfigurationChanged(Configuration newConfig) {if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {// 如果是横屏就换横屏图片imageView.setImageResource(R.drawable.mldn_landscape);} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {// 如果是竖屏就换竖屏图片imageView.setImageResource(R.drawable.mldn_portrait);}super.onConfigurationChanged(newConfig);}
也可在AndroidManifest.xml的activity标签中添加默认的Activity屏幕方向Landscape横屏,Portrait竖屏:
android:screenOrientation="portrait"
必须注意的是onConfigurationChanged方法的触发也需要在activity标签中指明:android:configChanges="orientation"
意思是当这个Activity改变了系统的设置如 横竖屏切换等 就会触发onConfigurationChanged方法,从而更换了图片。
注意:项目清单中的android:targetSdkVersion最高只能设置为12,不然无法触发onConfigurationChanged事件
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="12" />
0 0
- onConfigurationChanged--基于回调的事件处理方法demo案例
- Android事件处理方法总结-基于回调的事件处理
- Android事件处理方法总结-基于回调的事件处理
- 【Android事件的处理】---基于回调的事件处理
- Andorid事件处理 基于回调的事件处理
- Andorid事件处理 基于回调的事件处理
- Android基于回调的事件处理
- 基于回调机制的事件处理
- Android基于回调的事件处理
- Android基于回调的事件处理
- 基于回调的事件处理机制
- 基于接口回调的事件处理
- 【Android】基于监听的事件处理和基于回调的事件处理
- Android基于回调的事件处理与基于监听的事件处理
- 基于监听的事件处理和基于回调的事件处理
- Android事件处理模型一(基于回调机制的事件处理)
- Android 之事件处理(一)基于回调机制的事件处理
- Event---Android事件处理模型一(基于回调机制的事件处理)
- Eclipse/MyEclise 自定义注释中的变量名称
- http://www.cnblogs.com/tornadomeet/archive/2012/08/15/2640754.html
- NYOJ 题目171 聪明的kk
- javamail接收邮件(较全)
- PHP的发展趋势
- onConfigurationChanged--基于回调的事件处理方法demo案例
- 客户端如何调用IBinder接口对象
- html5离线Web应用程序介绍
- .Net的资源问题
- poj 1001 高精度乘法
- 二叉树的非递归遍历
- TCP close_wait的内幕(转载)
- 客户端工具国家级风景点积分快捷方式(接单Q977177223)
- 功夫有三个房间大黄蜂看电视国际快递(接单Q977177223)