美國留學(xué)選擇什么專業(yè)好?留學(xué)美國熱門專業(yè)推薦
2019-06-26
更新時間:2024-08-06 22:15作者:小樂
給大家介紹的Configuration類是用來描述手機設(shè)備的配置信息的,比如屏幕方向、觸摸屏觸摸方式等。相信定制過ROM的朋友應(yīng)該知道,我們可以使用:框架/base/core/java/android/content/res/Configuration.java 找到這個類,然后更改相關(guān)設(shè)置,比如調(diào)整默認(rèn)字體大小!有興趣的話可以自己去了解一下! Configuration類的使用在我們的Android開發(fā)中本節(jié)講解~API文檔:Configuration
1.Configuration為我們提供了方法列表
DensityDpi:屏幕密度fontScale:當(dāng)前用戶設(shè)置的字體的縮放系數(shù)HardKeyboardHidden:確定硬鍵盤是否可見。有兩個可選值:HARDKEYBOARDHIDDEN_NO、HARDKEYBOARDHIDDEN_YES,分別為十六進制0和1keyboard:獲取當(dāng)前關(guān)聯(lián)的鍵盤類型:該屬性的返回值:KEYBOARD_12KEY(只有12個鍵的小鍵盤)、KEYBOARD_NOKEYS、KEYBOARD_QWERTY(普通鍵盤)keyboardHidden:這個屬性返回一個布爾值來標(biāo)識當(dāng)前鍵盤是否可用。該屬性不僅決定了系統(tǒng)的硬件鍵盤,還決定了系統(tǒng)的軟鍵盤(位于屏幕上)。 locale:獲取用戶當(dāng)前所在地區(qū)mcc:獲取手機信號的國家代碼mnc:獲取手機信號的網(wǎng)絡(luò)代碼ps: 國家代碼和網(wǎng)絡(luò)代碼共同確定當(dāng)前手機網(wǎng)絡(luò)運營商navigation:確定導(dǎo)航設(shè)備類型在系統(tǒng)上。該屬性的返回值:NAVIGATION_NONAV(無導(dǎo)航)、NAVIGATION_DPAD(DPAD 導(dǎo)航) NAVIGATION_TRACKBALL(軌跡球?qū)Ш剑?、NAVIGATION_WHEEL(滾輪導(dǎo)航)orientation:獲取系統(tǒng)屏幕的方向。該屬性的返回值:ORIENTATION_LANDSCAPE(水平屏幕)、ORIENTATION_PORTRAIT(垂直屏幕) screenHeightDp、screenWidthDp:屏幕的可用高度和寬度,以dp表示touchscreen:獲取系統(tǒng)觸摸屏的觸摸模式。該屬性的返回值:TOUCHSCREEN_NOTOUCH(無觸摸屏)、TOUCHSCREEN_STYLUS(手寫筆觸摸屏)、TOUCHSCREEN_FINGER(接受手指的觸摸屏) 2、寫一個簡單的例子來測試:
運行截圖:
代碼:
公共類MainActivity 擴展AppCompatActivity {
@覆蓋
protected void onCreate(Bundle savingInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView txtResult=(TextView) findViewById(R.id.txtResult);
StringBuffer 狀態(tài)=new StringBuffer();
//獲取系統(tǒng)的Configuration對象
配置cfg=getResources().getConfiguration();
//想檢查什么就檢查什么
status.append(\'密度Dpi:\' + cfg.密度Dpi + \'\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.密度Dpi + \'\n\');
status.append(\'touchscreen:\' + cfg.密度Dpi + \'\n\');
status.append(\'uiMode:\' + cfg.密度Dpi + \'\n\');
txtResult.setText(status.toString());
}
}
3.重寫onConfigurationChanged以響應(yīng)系統(tǒng)設(shè)置更改
該方法用于監(jiān)視系統(tǒng)設(shè)置的變化。它是一種基于回調(diào)的時間處理方法。當(dāng)系統(tǒng)設(shè)置改變時會自動觸發(fā);但請注意,如果使用下面的方法進行監(jiān)控,targetSdkVersion屬性最多只能設(shè)置為12,如果高于12,該方法將不會被激活!下面是橫豎屏切換的例子,供大家參考。其他信息大家可以Google一下~
代碼示例:一個簡單的按鈕,點擊橫豎屏切換,然后Toast提示
操作效果圖:
實現(xiàn)代碼:
公共類MainActivity 擴展Activity {
@覆蓋
protected void onCreate(Bundle savingInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
按鈕btn=(按鈕) findViewById(R.id.btncahange);
btn.setOnClickListener(new OnClickListener() {
@覆蓋
公共無效onClick(查看v){
配置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);
}
}
});
}
@覆蓋
公共無效onConfigurationChanged(配置newConfig){
super.onConfigurationChanged(newConfig);
String screen=newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE \'橫屏\':\'豎屏\';
Toast.makeText(MainActivity.this, \'系統(tǒng)屏幕方向已改變\n修改后的方向為\' + screen, Toast.LENGTH_SHORT).show();
}
}
另外,還需要在AndroidManifest.xml中添加以下內(nèi)容:
Permission : uses-permission android:name=\'android.permission.CHANGE_CONFIGURATION\'/在activity標(biāo)簽中添加:android:configChanges=\'orientation\'并將targetSdkVersion更改為12或以上,12也可以
本節(jié)小結(jié):
本節(jié)向您解釋:Configuration類和onConfigurationChanged響應(yīng)系統(tǒng)設(shè)置的更改。大家可以有一個大概的了解。以后用的話我們會繼續(xù)深入研究~