<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 本節引言: > 本節給大家介紹的Configuration類是用來描述手機設備的配置信息的,比如屏幕方向, 觸摸屏的觸摸方式等,相信定制過ROM的朋友都應該知道我們可以在: frameworks/base/core/java/android/content/res/Configuration.java 找到這個類,然后改下相關設置,比如調整默認字體的大小!有興趣可自行了解! 本節講解的Configuration類在我們Android開發中的使用~ API文檔:[Configuration](http://androiddoc.qiniudn.com/reference/android/content/res/Configuration.html) * * * ## 1.Configuration給我們提供的方法列表 > * **densityDpi**:屏幕密度 > * **fontScale**:當前用戶設置的字體的縮放因子 > * **hardKeyboardHidden**:判斷硬鍵盤是否可見,有兩個可選值:HARDKEYBOARDHIDDEN_NO,HARDKEYBOARDHIDDEN_YES,分別是十六進制的0和1 > * **keyboard**:獲取當前關聯額鍵盤類型:該屬性的返回值:KEYBOARD_12KEY(只有12個鍵的小鍵盤)、KEYBOARD_NOKEYS、KEYBOARD_QWERTY(普通鍵盤) > * **keyboardHidden**:該屬性返回一個boolean值用于標識當前鍵盤是否可用。該屬性不僅會判斷系統的硬件鍵盤,也會判斷系統的軟鍵盤(位于屏幕)。 > * **locale**:獲取用戶當前的語言環境 > * **mcc**:獲取移動信號的國家碼 > * **mnc**:獲取移動信號的網絡碼? > ps:國家代碼和網絡代碼共同確定當前手機網絡運營商 > * **navigation**:判斷系統上方向導航設備的類型。該屬性的返回值:NAVIGATION_NONAV(無導航)、 NAVIGATION_DPAD(DPAD導航)NAVIGATION_TRACKBALL(軌跡球導航)、NAVIGATION_WHEEL(滾輪導航) > * **orientation**:獲取系統屏幕的方向。該屬性的返回值:ORIENTATION_LANDSCAPE(橫向屏幕)、ORIENTATION_PORTRAIT(豎向屏幕) > * **screenHeightDp**,**screenWidthDp**:屏幕可用高和寬,用dp表示 > * **touchscreen**:獲取系統觸摸屏的觸摸方式。該屬性的返回值:TOUCHSCREEN_NOTOUCH(無觸摸屏)、TOUCHSCREEN_STYLUS(觸摸筆式觸摸屏)、TOUCHSCREEN_FINGER(接收手指的觸摸屏) * * * ## 2.寫個簡單例子測試下: **運行截圖:** ![](https://box.kancloud.cn/2015-12-01_565da683da6ec.jpg) **代碼實現:** ~~~ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView txtResult = (TextView) findViewById(R.id.txtResult); StringBuffer status = new StringBuffer(); //①獲取系統的Configuration對象 Configuration cfg = getResources().getConfiguration(); //②想查什么查什么 status.append("densityDpi:" + cfg.densityDpi + "\n"); status.append("fontScale:" + cfg.fontScale + "\n"); status.append("hardKeyboardHidden:" + cfg.hardKeyboardHidden + "\n"); status.append("keyboard:" + cfg.keyboard + "\n"); status.append("keyboardHidden:" + cfg.keyboardHidden + "\n"); status.append("locale:" + cfg.locale + "\n"); status.append("mcc:" + cfg.mcc + "\n"); status.append("mnc:" + cfg.mnc + "\n"); status.append("navigation:" + cfg.navigation + "\n"); status.append("navigationHidden:" + cfg.navigationHidden + "\n"); status.append("orientation:" + cfg.orientation + "\n"); status.append("screenHeightDp:" + cfg.screenHeightDp + "\n"); status.append("screenWidthDp:" + cfg.screenWidthDp + "\n"); status.append("screenLayout:" + cfg.screenLayout + "\n"); status.append("smallestScreenWidthDp:" + cfg.densityDpi + "\n"); status.append("touchscreen:" + cfg.densityDpi + "\n"); status.append("uiMode:" + cfg.densityDpi + "\n"); txtResult.setText(status.toString()); } } ~~~ * * * ## 3.重寫onConfigurationChanged響應系統設置更改 > 該方法用于監聽系統設置的更改,是基于回調的時間處理方法,當系統的設置發生改變時就會自動觸發; 但是要注意一點,使用下面的方法監控的話,targetSdkVersion屬性最高只能設置為12,高于12的話,該方法不會被激發!這里寫個橫豎屏切換的例子給大家參考參考,其他的可自行谷歌~ **代碼示例**:簡單的一個按鈕,點擊后切換橫豎屏,然后Toast提示 **運行效果圖:** ![](https://box.kancloud.cn/2015-12-01_565da684430e6.jpg)![](https://box.kancloud.cn/2015-12-01_565da6849d181.jpg) **實現代碼:** ~~~ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewById(R.id.btncahange); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Configuration config = getResources().getConfiguration(); //如果是橫屏的話切換成豎屏 if(config.orientation == Configuration.ORIENTATION_LANDSCAPE) { MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } //如果豎屏的話切換成橫屏 if(config.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(MainActivity.this, "系統屏幕方向發生改變 \n 修改后的方向為" + screen, Toast.LENGTH_SHORT).show(); } } ~~~ 另外,還需要在AndroidManifest.xml添加下述內容: > 權限:?****?在< activity標簽中添加:**android:configChanges="orientation"**?將targetSdkVersion改為12以上的,12也可以 * * * ## 本節小結: 本節給大家講解了:Configuration類以及onConfigurationChanged響應系統設置更改,有個大概了解即可 后續用到我們再繼續深入~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看