红菊直播官方版-红菊直播免费版app下载-红菊直播永久免费版下载

網(wǎng)站首頁
手機(jī)版

響應(yīng)系統(tǒng)設(shè)置的事件(Configuration類)

更新時(shí)間:2024-06-07 01:18作者:小樂

給大家介紹的Configuration類是用來描述手機(jī)設(shè)備的配置信息的,比如屏幕方向、觸摸屏觸摸方式等。相信定制過ROM的朋友應(yīng)該知道,我們可以使用:框架/base/core/java/android/content/res/Configuration.java 找到這個(gè)類,然后更改相關(guān)設(shè)置,比如調(diào)整默認(rèn)字體大小!有興趣的話可以自己去了解一下! Configuration類的使用在我們的Android開發(fā)中本節(jié)講解~API文檔:Configuration

1.Configuration為我們提供了方法列表

DensityDpi:屏幕密度fontScale:當(dāng)前用戶設(shè)置的字體的縮放系數(shù)HardKeyboardHidden:確定硬鍵盤是否可見。有兩個(gè)可選值:HARDKEYBOARDHIDDEN_NO、HARDKEYBOARDHIDDEN_YES,分別為十六進(jìn)制0和1keyboard:獲取當(dāng)前關(guān)聯(lián)的鍵盤類型:該屬性的返回值:KEYBOARD_12KEY(只有12個(gè)鍵的小鍵盤)、KEYBOARD_NOKEYS、KEYBOARD_QWERTY(普通鍵盤)keyboardHidden:這個(gè)屬性返回一個(gè)布爾值來標(biāo)識(shí)當(dāng)前鍵盤是否可用。該屬性不僅決定了系統(tǒng)的硬件鍵盤,還決定了系統(tǒng)的軟鍵盤(位于屏幕上)。 locale:獲取用戶當(dāng)前所在地區(qū)mcc:獲取手機(jī)信號(hào)的國(guó)家代碼mnc:獲取手機(jī)信號(hào)的網(wǎng)絡(luò)代碼ps: 國(guó)家代碼和網(wǎng)絡(luò)代碼共同確定當(dāng)前手機(jī)網(wǎng)絡(luò)運(yùn)營(yíng)商navigation:確定手機(jī)上導(dǎo)航設(shè)備的類型系統(tǒng)。該屬性的返回值:NAVIGATION_NONAV(無導(dǎo)航)、NAVIGATION_DPAD(DPAD 導(dǎo)航) NAVIGATION_TRACKBALL(軌跡球?qū)Ш剑AVIGATION_WHEEL(滾輪導(dǎo)航)orientation:獲取系統(tǒng)屏幕的方向。該屬性的返回值:ORIENTATION_LANDSCAPE(水平屏幕)、ORIENTATION_PORTRAIT(垂直屏幕) screenHeightDp、screenWidthDp:屏幕的可用高度和寬度,以dp表示touchscreen:獲取系統(tǒng)觸摸屏的觸摸模式。該屬性的返回值:TOUCHSCREEN_NOTOUCH(無觸摸屏)、TOUCHSCREEN_STYLUS(手寫筆觸摸屏)、TOUCHSCREEN_FINGER(接受手指的觸摸屏) 2、寫一個(gè)簡(jiǎn)單的例子來測(cè)試:

運(yùn)行截圖:

代碼:

公共類MainActivity 擴(kuò)展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對(duì)象

配置cfg=getResources().getConfiguration();

//檢查你想檢查的內(nèi)容

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)的時(shí)間處理方法。當(dāng)系統(tǒng)設(shè)置改變時(shí)會(huì)自動(dòng)觸發(fā);但請(qǐng)注意,如果使用下面的方法進(jìn)行監(jiān)控,targetSdkVersion屬性最多只能設(shè)置為12,如果高于12,該方法將不會(huì)被激活!下面是橫豎屏切換的例子,供大家參考。其他信息大家可以Google一下~

代碼示例:一個(gè)簡(jiǎn)單的按鈕,點(diǎn)擊橫豎屏切換,然后Toast提示

操作效果圖:

實(shí)現(xiàn)代碼:

公共類MainActivity 擴(kuò)展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修改后的方向?yà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è)置的更改。大家可以有一個(gè)大概的了解。以后用的話我們會(huì)繼續(xù)深入研究~

為您推薦

密歇根州立大學(xué)相當(dāng)于中國(guó)什么等級(jí)的大學(xué)?(密歇根州立大學(xué)相當(dāng)于幾本)

密歇根州立大學(xué)(Michigan State University),簡(jiǎn)稱MSU,成立于1855年的,坐落在美國(guó)密歇根州東蘭辛市,是一所世界一流的公立研究型大學(xué),是北美頂尖大學(xué)學(xué)術(shù)聯(lián)盟美國(guó)大學(xué)協(xié)會(huì)(AAU)的成員之一,被譽(yù)為“公立常青藤”大

2024-06-07 01:18

一步到位!密歇根州立大學(xué),高考后的最佳選擇(密歇根州立大學(xué)是野雞大學(xué)嗎)

密歇根州立大學(xué)概述密歇根州立大學(xué)(Michigan State University),或譯為密西根州立大學(xué),簡(jiǎn)稱MSU,成立于1855年,坐落在美國(guó)密歇根州東蘭辛市,是一所世界一流的公立研究型大學(xué),是北美頂尖大學(xué)學(xué)術(shù)聯(lián)盟美國(guó)大學(xué)協(xié)會(huì)(AA

2024-06-07 01:17

航電GNSS增強(qiáng)系統(tǒng)在民航中的應(yīng)用

航空運(yùn)輸量的快速增長(zhǎng)使空域資源變得十分緊張,如北京首都國(guó)際機(jī)場(chǎng)每日航班進(jìn)出港數(shù)量在1400架次左右,已經(jīng)接近飽和。同時(shí),其他航空器飛行任務(wù)也在不斷增長(zhǎng),使得原本緊張的空域變得更加擁堵。國(guó)際民航組織(ICAO)與各締約國(guó)和有關(guān)國(guó)際組織共同致力

2024-06-07 01:17

又是“一箭雙星”!這次,它們帶上了“國(guó)際搜救黑匣子”

9月19日22時(shí)07分,我國(guó)在西昌衛(wèi)星發(fā)射中心用長(zhǎng)征三號(hào)乙運(yùn)載火箭(及遠(yuǎn)征一號(hào)上面級(jí)),以“一箭雙星”方式成功發(fā)射第三十七、三十八顆北斗導(dǎo)航衛(wèi)星。首次裝載國(guó)際搜救組織標(biāo)準(zhǔn)設(shè)備衛(wèi)星經(jīng)過3個(gè)多小時(shí)的飛行后順利進(jìn)入預(yù)定軌道,后續(xù)將進(jìn)行測(cè)試與試驗(yàn)評(píng)

2024-06-07 01:16

150美元成本,實(shí)力可掏空在線撲克公司!AI玩多人德?lián)鋼魯№敿?jí)玩家

人工智能終于開始掌握人性中一些獨(dú)特的能力,并且比它的老師玩得還好。要想在撲克中獲勝,就需要利用這樣一項(xiàng)能力:狡猾。為了獲勝,玩家必須分析對(duì)手如何出牌,然后欺騙他們交出手中的籌碼。當(dāng)然,這種狡詐對(duì)人來說很自然?,F(xiàn)在,人工智能程序首次表現(xiàn)出能夠

2024-06-07 01:16

什么是區(qū)域衛(wèi)星導(dǎo)航系統(tǒng)(IRNSS區(qū)域衛(wèi)星導(dǎo)航系統(tǒng))

區(qū)域衛(wèi)星導(dǎo)航系統(tǒng)僅可在一定區(qū)域內(nèi)實(shí)現(xiàn)導(dǎo)航定位。如我國(guó)的北斗一號(hào)衛(wèi)星導(dǎo)航系統(tǒng),其作用范圍為我國(guó)國(guó)土范圍和周邊地區(qū)。目前,國(guó)內(nèi)外已經(jīng)建成或正在建設(shè)的區(qū)域衛(wèi)星導(dǎo)航系統(tǒng)有日本的準(zhǔn)天頂衛(wèi)星服務(wù)系統(tǒng)(QZSS)和印度的區(qū)域衛(wèi)星導(dǎo)航系統(tǒng)(IRNSS).以

2024-06-07 01:15

加載中...