編寫:K0ST - 原文:http://developer.android.com/training/system-ui/dim.html
本課程將向你講解如何在Android 4.0(API level 14)與更高的的系統(tǒng)版本上淡化系統(tǒng)欄(System bar,狀態(tài)欄與導(dǎo)航欄)。早期版本的Android沒有提供一個自帶的方法來淡化系統(tǒng)欄。
當(dāng)你使用這個方法的時候,內(nèi)容區(qū)域并不會發(fā)生大小的變化,只是系統(tǒng)欄的圖標(biāo)會收起來。一旦用戶觸摸狀態(tài)欄或者是導(dǎo)航欄的時候,這兩個系統(tǒng)欄就又都會完全顯示(無透明度)。這種方法的優(yōu)勢是系統(tǒng)欄仍然可見,但是它們的細(xì)節(jié)被隱藏掉了,因此可以在不犧牲快捷訪問系統(tǒng)欄的情況下創(chuàng)建一個沉浸式的體驗(yàn)。
這節(jié)課將教您
同時您應(yīng)該閱讀
如果要淡化狀態(tài)和通知欄,在版本為4.0以上的Android系統(tǒng)上,你可以像如下使用SYSTEM_UI_FLAG_LOW_PROFILE
這個標(biāo)簽。
// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);
一旦用戶觸摸到了狀態(tài)欄或者是系統(tǒng)欄,這個標(biāo)簽就會被清除,使系統(tǒng)欄重新顯現(xiàn)(無透明度)。在標(biāo)簽被清除的情況下,如果你想重新淡化系統(tǒng)欄就必須重新設(shè)定這個標(biāo)簽。
圖1展示了一個圖庫中的圖片,界面的系統(tǒng)欄都已被淡化(需要注意的是圖庫應(yīng)用完全隱藏狀態(tài)欄,而不是淡化它);注意導(dǎo)航欄(圖片的右側(cè))上變暗的白色的小點(diǎn),他們代表了被隱藏的導(dǎo)航操作。
http://wiki.jikexueyuan.com/project/android-training-geek/images/low_profile_hide2x.png" alt="low_profile_hide2x" />
圖1.淡化的系統(tǒng)欄
圖2展示的是同一張圖片,系統(tǒng)欄處于顯示的狀態(tài)。
http://wiki.jikexueyuan.com/project/android-training-geek/images/low_profile_show2x.png" alt="low_profile_show2x" />
圖2.顯示的系統(tǒng)欄
如果你想動態(tài)的清除顯示標(biāo)簽,你可以使用setSystemUiVisibility()
方法:
View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);