安卓5.0沉浸式模式學習筆記
標簽: Android沉浸式筆記
轉自:http://blog.csdn.net/guolin_blog/article/details/51763825
沉浸式:沉浸式就是要給用戶提供完全沉浸的體驗,使用戶有一種置身于虛擬世界之中的感覺.
比如之前的一些游戲就做到了這一點
下面開始放代碼和效果圖
第一種 標準沉浸式
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(option);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
實現的效果圖
已經有點沉浸式的感覺了
第二種 就是模仿餓了么狀態欄的一種
/**
* 模仿餓了么 留下標題欄 這樣的效果只有5.0以上的系統才支持
* 我們使用了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE,
* 注意兩個Flag必須要結合在一起使用,
* 表示會讓應用的主體內容占用系統狀態欄的空間,
* 最后再調用Window的setStatusBarColor()方法將狀態欄設置成透明色就可以了。
*
* 這種效果不叫沉浸式狀態欄 姑且叫做透明狀態欄
*/
if(Build.VERSION.SDK_INT >= 21){
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
第三種 隱藏導航欄 看似沉浸式 但其實點擊任何一處都會退出沉浸式
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(option);
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
第四種 制作透明導航欄 跟餓了么的相似
if (Build.VERSION.SDK_INT >= 21) {
View decorView = getWindow().getDecorView();
int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().setNavigationBarColor(Color.TRANSPARENT);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
第五種 真正的沉浸式
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && Build.VERSION.SDK_INT >= 19) {
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
}
在模擬器上看不出什么 在手機上運行的效果
智能推薦
安卓學習筆記三(activity、MVC設計模式、intent)
目錄 一、將控件鏈接起來 二、創建并顯示Toast消息 三、創建一個新的Activity類 四、用intent啟用一個activity 在activity中訪問控件 步驟一:添加成員變量(可能被跳過) private Button btn; 步驟二:引用控件 findViewById(R.id.***); 步驟三:為控件設置監聽器(有三種方法) btn1.setOnClickListener(&h...
安卓沉浸式狀態欄,安卓設置狀態欄顏色、字體顏色詳解
本文分兩部分 1、效果圖 2、工具類 廢話不多說, 效果圖如下: 黑底白字 白底黑字: 工具類 用法在需要設置的activity中調用,注意 喜歡的朋友們,拿去不謝。...
android沉浸式模式
現在沉浸式模式運用越來越廣泛,效果確實也挺不錯美觀,但是android在5.0之前是不支持沉浸式模式的,直到5.0后才加入沉浸式模式,所以特此記錄下5.0以下和以上沉浸式模式的實現方式。(都是代碼沒用樣式,代碼擴展性強,易復用) 在5.0以下要實現沉浸式模式首選需要改變狀態欄背景色 FLAG_TRANSLUCENT_STATUS就是將狀態欄設置為半透明狀態,效果如圖 未使用之前效果: 使用之后 狀...
安卓項目實戰之實現頂部標題欄沉浸式漸變效果
效果圖如下: 實現步驟: 1、繼承ScrollView實現自定義的ObservableScrollView.java類,代碼如下: 2、頁面布局代碼如下: 3、include_header_itl.xml為頂部標題欄布局文件,代碼如下: 4、主頁面邏輯代碼: 重要知識點: 使用上述代碼獲取控件寬高時,如果是在Activity中,那么可直接在onCreate方法中使用,但如果有多個fragment通...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...