Android 事件处理详解(三) —— 响应系统设置的事件[Configuration]
来源:互联网 发布:龙腾管家软件下载 编辑:程序博客网 时间:2024/05/23 22:23
在开发Android应用时,有时候需要让应用程序随系统设置进行调整,比如判断系统的屏幕方向,判断系统方法的方向导航设备等等,有时甚至要根据系统设置的更改做出相应。
这就是响应系统设置事件的必要。
1.Configuration类简介:
Configuration类专门描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。通过调用Activity的getResources().getConfiguration()方法获得Configuration对象,然后就可以使用下面常用属性来获取系统的配置信息:
2.重写onConfigurationChanged响应系统设置更改:
该方法是一个基于回调的事件处理方法:当系统设置发生更改时,该方法会被自动触动。
这里插一个小知识,在程序中动态的更改系统设置,可以通过调用Activity的setRequestedOrientation(int)方法来修改屏幕的方法。
范例:
动态改变手机屏幕方向。
【当系统设置更改,就会回调方法onConfigurationChanged()】
public class MainActivity extends Activity { private Button mButtonto; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButtonto= (Button) findViewById(R.id.button); mButtonto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Configuration configuration=getResources().getConfiguration();//1.获得Configuration对象 if(configuration.orientation==Configuration.ORIENTATION_LANDSCAPE){//如果是横屏,则修改为竖屏 MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } if(configuration.orientation==Configuration.ORIENTATION_PORTRAIT){//如果是竖屏,则修改为横屏 MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } } }); } //重写方法,监听系统设置的更改,监控屏幕方向的更改 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); String screen = newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE ? "横向屏幕":"竖向屏幕"; Toast.makeText(this,"屏幕方向修改后为"+screen,Toast.LENGTH_SHORT).show(); }}
但这样还是不能够监听到事件,还需要在menifest中配置android:configChanges属性,该属性可以支持mcc,mnc,locale,touchscreen,keyboard,keyboradHidden,navigation,orientation,screenLayout,uiMode,screenSize,smallestScreenSize,fontScale属性值,而orientation属性值可以指定该Activity可以监听屏幕方法的改变。
且版本最高只能设置成12,否则不会回调onConfigurationChanged()方法
- Android 事件处理详解(三) —— 响应系统设置的事件[Configuration]
- Android基础入门教程——3.6 响应系统设置的事件(Configuration类)
- 响应系统设置的事件Configuration
- Android事件处理之三 响应的系统设置的事件
- 事件处理机制之响应系统设置的事件(Configuration类)
- Configuration类响应系统设置的事件处置
- 3.6 响应系统设置的事件(Configuration类)
- 响应的系统设置事件
- android之响应的系统设置的事件
- Android之响应的系统设置的事件
- android之响应的系统设置的事件
- Android事件处理(三)——View的onTouchEvent 函数源码详解
- Android讲义3---第三章---响应系统设置的事件
- Android学习笔记(六)响应系统设置事件
- Android 事件处理详解(一) —— 基于监听的事件处理 1
- Android 事件处理详解(一) —— 基于监听的事件处理 2
- Android 事件处理详解(二) —— 基于回调的事件处理
- 响应的系统设置的事件
- HDU 3721 - Building Roads(DFS`树的直径)
- STL remove和erase
- AndroidUI 视图动画-缩放动画效果 (ScaleAnimation)
- SCU 4437 Carries 想法题
- 读取数量不定的输入数据
- Android 事件处理详解(三) —— 响应系统设置的事件[Configuration]
- DirectX11 山峰与河谷示例Demo
- CSS表格
- 黑马程序员——面向对象之异常(一)
- 两个链表的第一个公共结点(剑指offer)+链表
- 2015弱校联盟(1) -J. Right turn
- 外键
- 【bzoj4216】 Pig 乱搞
- c++primer读书笔记零(开读篇)