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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM