如果在Android应用程序中需要监听系统设置的更改状况,可以通过重写Activity中的onConfigurationChanged(Configuration newConfig)方法实现,此方法是一个基于回调的事件处理方法。当系统设置信息发生改变时,方法onConfigurationChanged会被自动触发。
在Android应用程序中,为了动态地更改系统设置,可调用Activity的setRequested Orientation(int)方法来修改屏幕方向。
接下来将通过一个实例来演示通过重写onConfigurationChanged方式响应系统设置方式更改的方法,本实例程序可以获取系统的屏幕方向和触摸屏方式等。
本实例的具体实现流程如下。
1)编写布局文件main.xml,在该界面中仅包含一个普通按钮,具体实现代码如下
(2)编写Java程序文件ChangeCfg.java,功能是调用Activity的setRequestedOrientation(int)方法来动态更改屏幕方向。除此之外,还重写了Activity的onConfigurationChanged(Configuration newConfig)方法,该方法可用于监听系统设置的更改。文件ChangeCfg.java的具体实现代码如下。
(www.xing528.com)
在上述代码中首先设置动态地修改手机屏幕的方向,然后重写了Activity的onConfigurationChanged(Configuration newConfig)方法,当系统设置发生更改时,该方法将会被自动回调。
另外,为了让该Activity能监听屏幕方向更改的事件,需要在配置该Activity时指定属性android:configChanges。属性android:configChanges支持的属性值有mcc、mnc、locale、touchscreen、keyboard、keyboardHidden、navigation、orientation、screenLayout、uiMode、screenSize、smallestScreenSize、fontScale。其中属性值orientation用于指定该Activity可以监听屏幕方向改变的事件。
(3)在文件AndroidManifest.xml中设置该Activity可以监听屏幕方向改变的事件,这样当程序改变手机屏幕方向时,Activity的onConfigurationChanged()方法就会被回调。文件AndroidManifest.xml的具体实现代码如下。
在模拟器中单击按钮后将变为横向屏幕,执行效果如图8-14所示
图8-14 移动的小球
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。