Android中getResources().getConfiguration()方法的作用

  Android中Configuration类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。

Configuration对象获得:

1 Configuration configuration = getResources().getConfiguration();

Configuration对象提供的基本属性可以获取系统的配置信息:

 1     public int densityDpi;      //得到设备的密度
 2     public float fontScale;     //获取当前用户设置的字体的缩放因子
 3     public int KeyboardHidden;  //该属性会返回一个boolean值用于表示当前的键盘是否可用,该属性不仅
 4                                 //会判断系统的硬件键盘,也会判断系统位于屏幕上的软键盘,如果该系统
 5                                 //的硬 件键盘不可用但软键盘可用该属性会返回KEYBOARDHIDDEN_NO,只
 6                                 //有当两个键盘都不可用的时候才返回KEYBOARDHIDDEN_YES
 7     public int keyboard;        //获取当前设备所关联的键盘的类型
 8     public Locale locale;       //获取用于当前的Locale
 9     public int mcc;             //得到移动信号的国家码
10     public int mnc;             //得到移动信号的网络码
11     public int navigation;      //判断系统上方向导航设备的类型。该属性的返回值:
12                                 //NAVIGATION_NONAV(无导航)、NAVIGATION_DPAD(DPAD导航)、
13                                 //NAVIGATION_TRACKBALL(轨迹球导航)、NAVIGATION_WHEEL(滚轮
14                                 //导航)
15     public int orientation;     //得到系统屏幕的方向,该属性将会返回ORIENTATION_LANDSCAPE(横向
16                                 //屏幕),ORIENTATION_PORTRAIT(竖向屏幕),ORIENTATION_SQUARE(方
17                                 //形屏幕)三个属性值之一
18     public int touchscreen;     //获取系统触摸屏的触摸方式。该属性的返回值:
19                                 //TOUCHSCREEN_NOTOUCH(无触摸屏)、TOUCHSCREEN_STYLUS(触摸笔
20                                 //式触摸屏)、TOUCHSCREEN_FINGER(接收手指的触摸屏)等属性值

  如果程序需要监听系统设置的更改,这里就需要重写Activity的onConfigurationChanged(Configuration newConfig)的方法,例如我们要实现设置系统的屏幕更改方向并监听,需要有以下几步:

  指定清单文件的configChanges属性

1 <activity android:name=".MainActivity"
2              android:configChanges="screenSize|orientation">
3             <intent-filter>
4               <action android:name="android.intent.action.MAIN"/>
5               <category android:name="android.intent.category.LAUNCHER" />
6             </intent-filter>
7 </activity>

  设置按钮的点击事件,并重写回调方法

 1    public void changeOri(View view){
 2         Configuration configuration=getResources().getConfiguration();
 3         if(configuration.orientation==Configuration.ORIENTATION_LANDSCAPE){
 4             //当前是横屏,需要更改为竖屏
 5             MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
 6         }
 7         if(configuration.orientation==Configuration.ORIENTATION_PORTRAIT){
 8             //当前是竖屏,需要更改为横屏
 9             MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
10         }
11     }
12
13     @Override
14     public void onConfigurationChanged(Configuration newConfig) {
15         super.onConfigurationChanged(newConfig);
16         String screen=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE?"横屏":"竖屏";
17         Toast.makeText(this,"当前屏幕的状态是:"+screen,Toast.LENGTH_SHORT).show();
18     }

  原文:https://blog.csdn.net/qq_35427437/article/details/85988493

原文地址:https://www.cnblogs.com/CYCLearning/p/11739170.html

时间: 2024-10-09 00:39:59

Android中getResources().getConfiguration()方法的作用的相关文章

使用SourceInsight查看android中的native方法

SourceInsight真的是查看源代码的神器.只要知道了文件名,就可以快速定位到文件.最近在研究Android的touch系统,发现MotionEvent的getX()方法调用的是nativeGexAxis(),于是想看看该本地代码是如何实现的,但我不知道nativeGexAxis的实现代码在什么位置.Android中的类调用本地代码是通过类名相似或Android.mk文件定义.MotionEvent所在的pack为android.view,将点号换成下划线,我们可以推测MotionEven

Android中常见IPC方法总结

欢迎转载,转载请注明出处http://blog.csdn.net/l664675249/article/details/50654926 IPC (Interprocess communication)跨进程通信,是指在两个进程之间交换数据的过程.多进程通信一般分为两种情况.第一种,一个应用因为自身的需要采用多进程实现,比如某些模块由于特殊原因需要运行在单独的进程中.第二种情况,当前应用需要获得其它应用的数据,由于是两个应用,所以必须采用跨进程的方式.下面就对常用的IPC方法做一个总结. 使用B

getDrawingCache()和Android中的截图方法简介

getDrawingCache()方法截取部分屏幕: view.setDrawingCacheEnabled(true);//设置能否缓存图片信息(drawing cache) view.buildDrawingCache();//如果能够缓存图片,则创建图片缓存 Bitmap bitmap = view.getDrawingCache();//如果图片已经缓存,返回一个bitmap view.destroyDrawingCache();//释放缓存占用的资源 Tips: 如果在一个界面中,重复

ANDROID 中UID与PID的作用与区别

PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同,因

Android 中pid与uid的作用与区别

PID:为Process Identifier, PID就是各进程的身份标识. 程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID. 表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同

android中nterpolator的方法详细

android:interpolator Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等. android中的文档内容如下: AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速 AccelerateInterpolator  在动画开始的地方速率改变比较慢,然后开始加速 Ant

为Android中PackageManagerService添加方法

PackageManagerService相关类结构 分析 从上图可以看出若想为PackageManagerService添加方法需要进行以下改动 1,在IPackageManager.aidl文件中增加方法的声明: 2,在PackageManager类中增加抽象方法说明: 3,在ApplicationPackageManager中增加方法,具体实现为调用远程PackageManagerService的方法: 4,在PackageManagerService中增加方法的具体实现: 注:由于Moc

Android中UID和PID的作用和区别

PID:为Process Identifier, PID就是各进程的身份标识,程序一运行系统就会自动分配给进程一个独一无二的PID.进程中止后PID被系统回收,可能会被继续分配给新运行的程序,但是在android系统中一般不会把已经kill掉的进程ID重新分配给新的进程,新产生进程的进程号,一般比产生之前所有的进程号都要大. UID:一般理解为User Identifier,UID在linux中就是用户的ID,表明时哪个用户运行了这个程序,主要用于权限的管理.而在android 中又有所不同,因

android中的一些方法理解 onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX

前言 第一次注册博客,并开始写博客,希望自己能够坚持写下去(呵呵,坚持乃成功字母).以后把自己在android方面的理解,或者别的博友的优秀代码片段都写入自己的博客,一是方便自己日后回顾(温故而知新嘛),二是给需要的同学阅读了解. 正文 下面开始讲下我对onFling,onScroll,onMeasure,onLayout,getLeft,getX,getRawX这几个方法的理解. onFling @Override public boolean onFling(MotionEvent e1,