Configuration类简介
16lz
2022-06-03
Android中Configuration类简介
分类:Android 2013-06-18 22:48 82人阅读 评论(0) 收藏 举报 Android Configuration 系统设置Configuration类专门描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。通过调用Activity的getResources().getConfiguration()方法获得Configuration对象,然后就可以使用下面常用属性来获取系统的配置信息:
下面通过一个简单实例来演示其中几个属性的使用,代码如下:
Activity:
[java] view plain copy- packagecom.lovo;
- importandroid.app.Activity;
- importandroid.content.res.Configuration;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.EditText;
- /**
- *获取系统设置
- *
- *
- */
- publicclassConfigActivityextendsActivity{
- privateEditTexteditText1;
- privateEditTexteditText2;
- privateEditTexteditText3;
- privateEditTexteditText4;
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.config_main);
- //获得EditText系列组件对象
- editText1=(EditText)findViewById(R.id.config_main_editText1);
- editText2=(EditText)findViewById(R.id.config_main_editText2);
- editText3=(EditText)findViewById(R.id.config_main_editText3);
- editText4=(EditText)findViewById(R.id.config_main_editText4);
- //获取Button组件实例
- Buttonbtn=(Button)findViewById(R.id.config_main_btn);
- btn.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //获得系统的Configuration对象
- Configurationconfig=getResources().getConfiguration();
- //获得屏幕方向
- Stringscreen=config.orientation==Configuration.ORIENTATION_LANDSCAPE?"横屏"
- :"竖屏";
- editText1.setText(screen);
- //获得移动信号的网络码
- StringmncCode=config.mnc+"";
- editText2.setText(mncCode);
- //获得系统上方向导航的设备类型
- StringnaviName=config.navigation==Configuration.NAVIGATION_NONAV?"没有方向控制"
- :config.navigation==Configuration.NAVIGATION_WHEEL?"滚轮控制方向"
- :config.navigation==Configuration.NAVIGATION_DPAD?"方向键控制方向"
- :"轨迹球控制方向";
- editText3.setText(naviName);
- //获得系统触摸屏的触摸方式
- StringtouchName=config.touchscreen==Configuration.TOUCHSCREEN_NOTOUCH?"无触摸屏"
- :config.touchscreen==Configuration.TOUCHSCREEN_STYLUS?"触摸笔式的触摸屏"
- :"接受手指的触摸屏";
- editText4.setText(touchName);
- }
- });
- }
- }
布局XML:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="center_horizontal"
- android:orientation="vertical">
- <EditText
- android:id="@+id/config_main_editText1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="显示屏幕方向"/>
- <EditText
- android:id="@+id/config_main_editText2"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="显示移动网络代号"/>
- <EditText
- android:id="@+id/config_main_editText3"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="显示手机方向控制设备"/>
- <EditText
- android:id="@+id/config_main_editText4"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="显示触摸屏触摸方式"/>
- <Button
- android:id="@+id/config_main_btn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="获取手机信息"/>
- </LinearLayout>
附上图片效果:
获取手机信息前:
获取手机信息后:
分享到:android中重写onConfigurationChanged方法响应系统设置更改
分类:Android 2013-06-19 00:04 92人阅读 评论(0) 收藏 举报 Android onConfigurationChang 系统设置更改 更改屏幕方向 Configuration本文中利用按钮动态改变屏幕方向,然后重写Activity的onConfigurationChanged方法,该方法用于监听系统设置的更改,代码如下:
Activity:
[java] view plain copy- packagecom.lovo;
- importandroid.app.Activity;
- importandroid.content.pm.ActivityInfo;
- importandroid.content.res.Configuration;
- importandroid.os.Bundle;
- importandroid.view.View;
- importandroid.view.View.OnClickListener;
- importandroid.widget.Button;
- importandroid.widget.Toast;
- publicclassTestActivityextendsActivity{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //获得改变系统布局的按钮
- Buttonbtn=(Button)findViewById(R.id.btn1);
- btn.setOnClickListener(newOnClickListener(){
- @Override
- publicvoidonClick(Viewv){
- //获得系统的Configuration对象
- Configurationconfig=getResources().getConfiguration();
- //如果当前是横屏
- if(config.orientation==Configuration.ORIENTATION_LANDSCAPE){
- //设为竖屏
- TestActivity.this
- .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
- }
- //如果当前是竖屏
- if(config.orientation==Configuration.ORIENTATION_PORTRAIT){
- //设为横屏
- TestActivity.this
- .setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- }
- }
- });
- }
- //重写该方法,用于监听系统设置的更改,主要是监控屏幕方向的更改
- @Override
- publicvoidonConfigurationChanged(ConfigurationnewConfig){
- super.onConfigurationChanged(newConfig);
- Stringscreen=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE?"横屏"
- :"竖屏";
- Toast.makeText(this,"系统屏幕方向发生改变"+"\n修改后的屏幕方向为:"+screen,
- Toast.LENGTH_LONG).show();
- }
- }
布局XML:
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:orientation="vertical">
- <Button
- android:id="@+id/btn1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="更改屏幕方向"/>
- </LinearLayout>
更改系统设置时需要在manifest声明权限:
- <?xmlversion="1.0"encoding="utf-8"?>
- <manifestxmlns:android="http://schemas.android.com/apk/res/android"
- package="com.lovo"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk
- android:minSdkVersion="8"
- android:targetSdkVersion="10"/>
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name">
- <!--android:configChanges="orientation":设置Activity允许修改屏幕方向-->
- <activity
- android:configChanges="orientation"
- android:name=".TestActivity"
- android:label="@string/app_name"
- android:theme="@style/AppTheme">
- <intent-filter>
- <actionandroid:name="android.intent.action.MAIN"/>
- <categoryandroid:name="android.intent.category.LAUNCHER"/>
- </intent-filter>
- </activity>
- <activity
- android:name=".TestListViewActivity"
- android:label="@string/app_name"
- android:theme="@style/AppTheme">
- </activity>
- </application>
- <!--授予应用程序修改系统设置的权限-->
- <uses-permissionandroid:name="android.permission.CHANGE_CONFIGURATION"/>
- </manifest>
附上图片效果:
更多相关文章
- android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置
- android背景选择器selector用法汇总
- android背景选择器selector用法汇总
- Qt for Android(安卓)程序禁止屏幕旋转
- android中获得屏幕、视图、任务栏、状态栏的高宽以及屏幕的设置
- Android(安卓)字体相关内容
- android GPS定位,定位城市称,经纬度
- Android(安卓)获得可用摄像头id
- Android文件操作