Android虛擬導(dǎo)航鍵的顯示隱藏實(shí)例
代碼如下:
package test.lb.com.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity implements View.OnClickListener{
boolean isnight = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button nightbutton = (Button) findViewById(R.id.nightbutton);
Button hidebutton = (Button) findViewById(R.id.hidenav);
Button fullbutton = (Button) findViewById(R.id.full);
Button fullonly = (Button) findViewById(R.id.fullonly);
nightbutton.setOnClickListener(this);
hidebutton.setOnClickListener(this);
fullbutton.setOnClickListener(this);
fullonly.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.nightbutton:
if (isnight){
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
}else{
//夜間模式,系統(tǒng)控件顏色會(huì)變暗
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
}
isnight = !isnight;
break;
case R.id.hidenav:
//隱藏虛擬按鍵,點(diǎn)擊又會(huì)重新出現(xiàn)
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
break;
case R.id.full:
//在隱藏顯示系統(tǒng)控件的過(guò)程中不會(huì)來(lái)移動(dòng)我們的控件
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE|
//隱藏系統(tǒng)狀態(tài)欄,如果設(shè)置了Window.FEATURE_ACTION_BAR_OVERLY同時(shí)隱藏Actionbar
View.SYSTEM_UI_FLAG_FULLSCREEN|
//這個(gè)會(huì)隱藏屏幕上的所有系統(tǒng)控件
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
break;
case R.id.fullonly:
v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
}
關(guān)鍵代碼部分其實(shí)已經(jīng)在上方了,現(xiàn)在來(lái)說(shuō)說(shuō)幾個(gè)FLAG:
1.View.SYSTEM_UI_FLAG_LOW_PROFILE 這個(gè)Flag設(shè)置之后你會(huì)發(fā)現(xiàn)整個(gè)屏幕中的系統(tǒng)控件部分的背景包括控件本身的會(huì)變暗或者消失,比如狀態(tài)欄中的某些圖標(biāo),但這個(gè)只是系統(tǒng)狀態(tài)欄、虛擬按鍵等進(jìn)入夜間模式,app內(nèi)部的控件并不會(huì)進(jìn)入夜間模式,這個(gè)以后有時(shí)間再研究怎么在應(yīng)用內(nèi)部實(shí)現(xiàn)夜間模式。
2.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION,設(shè)置這個(gè)Flag可以是虛擬按鍵進(jìn)行動(dòng)態(tài)的顯示和隱藏,因?yàn)樘摂M按鍵會(huì)占用屏幕控件,所以虛擬按鍵的顯示和隱藏可能會(huì)影響到你的控件在當(dāng)前界面中的位置,這個(gè)時(shí)候你可能需要設(shè)置另外一個(gè)FLAG,這個(gè)FLAG就是View.SYSTEM_UI_FLAG_LAYOUT_STABLE,設(shè)置這個(gè)FLAG會(huì)是你的控件不在受虛擬按鍵顯示或隱藏的影響。
3.View.SYSTEM_UI_FLAG_FULLSCREEN,這個(gè)Flag應(yīng)該是大家比較常用的一個(gè)Flag,設(shè)置之后會(huì)屏蔽掉狀態(tài)欄等控件使你的界面全屏顯示(不會(huì)隱藏虛擬按鍵),但是如果有actionbar和activitytitle等相關(guān)內(nèi)容存在,這些依舊還會(huì)顯示,如果設(shè)置了Window.FEATURE_ACTION_BAR_OVERLY,在隱藏狀態(tài)欄的同時(shí),則會(huì)將actionbar也一起隱藏,如果要隱藏title則需要設(shè)置Window.FEATURE_NO_TITLE
如何在帶有實(shí)體按鍵的情況下調(diào)出虛擬按鍵
1.通過(guò)修改build.prop調(diào)出虛擬按鍵,其路徑在system/下,在其中找到build.prop打開可以看到qemu.hw.mainkeys=1 或者qemu.hw.mainkeys= 0,當(dāng)qemu.hw.mainkeys=1時(shí)實(shí)體鍵盤起效,qemu.hw.mainkeys=0時(shí),顯示虛擬鍵盤,此時(shí)點(diǎn)擊實(shí)體鍵盤不起作用。
以上這篇Android虛擬導(dǎo)航鍵的顯示隱藏實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android自定義TimeButton實(shí)現(xiàn)倒計(jì)時(shí)按鈕
這篇文章主要為大家詳細(xì)介紹了Android自定義TimeButton實(shí)現(xiàn)倒計(jì)時(shí)按鈕,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Android如何實(shí)現(xiàn)時(shí)間線效果(下)
上一篇文章我們講了Android如何實(shí)現(xiàn)時(shí)間線效果,今天計(jì)息上一回的文章圍繞Android實(shí)現(xiàn)時(shí)間線效果內(nèi)容展開更多,需要的朋友可以參考一下2021-11-11
Android編程實(shí)現(xiàn)TextView字體顏色設(shè)置的方法小結(jié)
這篇文章主要介紹了Android編程實(shí)現(xiàn)TextView字體顏色設(shè)置的方法,結(jié)合實(shí)例形式總結(jié)分析了Android針對(duì)TextView字體顏色設(shè)置的相關(guān)步驟與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
Android實(shí)現(xiàn)帶進(jìn)度條的WebView
這篇文章主要介紹了Android實(shí)現(xiàn)帶進(jìn)度條的WebView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
Android自定義有限制區(qū)域的圖例角度自識(shí)別涂鴉工具類完結(jié)篇
這篇文章主要為大家介紹了Android自定義有限制區(qū)域的圖例角度自識(shí)別涂鴉工具類完結(jié)篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
ViewPager實(shí)現(xiàn)漂亮的引導(dǎo)頁(yè)
這篇文章主要為大家詳細(xì)介紹了ViewPager實(shí)現(xiàn)漂亮的引導(dǎo)頁(yè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Android RecyclerView的刷新分頁(yè)的實(shí)現(xiàn)
這篇文章主要介紹了Android RecyclerView的刷新分頁(yè)的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Android學(xué)習(xí)之Span的使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android中各種Span類的使用方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Android有一定的幫助,需要的可以參考一下2022-06-06
Android編程使用光線傳感器獲取光線強(qiáng)弱的方法【LightSensorManager封裝類】
這篇文章主要介紹了Android編程使用光線傳感器獲取光線強(qiáng)弱的方法,結(jié)合實(shí)例形式分析了Android光線傳感器管理封裝類LightSensorManager的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11

