【有美女看】提高用戶體驗,你不得不知道的事兒——巧用全屏與沉浸式體驗,讓用戶更舒心~

最近公司項目中要求寫一個視頻直播錄像及視頻觀看的功能,額,就本能地去看了一波當下主流的一些視頻類APP,發如今愛奇藝等播放器中,在播放視頻的時候都是fullScreen的,而這個在各大手遊中也體現的比較多。html

額,這個其實不算技術層次,可是爲了咱們的用戶體驗,咱們不能不把每個細節都作好,同時,這也是追妹祕訣哦~android

因而樓主就採用了愛奇藝這樣的設計風格,打算隱去系統標題欄和ActionBar。這裏就跟你們分享一下這個如何實現,你們能夠根據狀況採納。app

 

 

1)首先咱們來看看簡單的一張圖片是怎樣顯示的。代碼很簡單,咱們只對Xml上放一張大圖。ide

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout
 3     xmlns:android="http://schemas.android.com/apk/res/android"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context="com.example.nanchen.fullscreendemo.MainActivity">
 8 
 9     <ImageView
10         android:layout_width="match_parent"
11         android:layout_height="match_parent"
12         android:scaleType="centerCrop"
13         android:src="@drawable/test"/>
14 </RelativeLayout>

額,顯示就很常規啦。spa

 

2)咳咳!搞什麼飛機,我只想看美女,給我那麼多我不須要的東西作什麼?好嘛,來實現全屏,隱去系統標題欄,簡單一句代碼。設計

1 @Override
2     protected void onCreate(Bundle savedInstanceState) {
3         super.onCreate(savedInstanceState);
4         setContentView(R.layout.activity_main);
5 
6         //   實現全屏,去掉系統標題欄,適合於遊戲、電影等沉浸式體驗
7         getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
8 }

運行一下:code

 

3)咳咳,別把時間給弄丟了呀,我想像餓了麼同樣還要看到時間。哼,要是看美女看久了,沒注意時間被媳婦兒發現了可就很差了。視頻

好嘛,那就把系統時間放出來嘛,其實也很簡單啦,可是目前只支持SDK在21以上哦。下面兩種方式均可以。xml

1 if (VERSION.SDK_INT >= 21) {
2             getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
3                     | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
4             getWindow().setStatusBarColor(Color.TRANSPARENT);
5         }
 1         //另一種方式
 2         if (VERSION.SDK_INT >= 21) {
 3             getWindow().getDecorView().setSystemUiVisibility(
 4                     View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
 5                             | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
 6                             | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
 7             );
 8             getWindow().setStatusBarColor(Color.TRANSPARENT);
 9             getWindow().setNavigationBarColor(Color.TRANSPARENT);
10         }

看看效果。htm

4)哎,要是能夠想看的時候顯示,不想看的時候隱藏就行了。

也能夠呀。

1 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
2         | View.SYSTEM_UI_FLAG_FULLSCREEN);

運行。

小夥伴也許會想:靠,樓主你這什麼審美,這一閃一閃的是啥?這樣還不如上一個好,簡直是影響我看美女的心情。哎,關了關了。誰會這麼腦殘這樣弄。

5)話說心急吃不了熱豆腐,我親愛的小夥伴你別方,咱們還沒帶來重磅呢,app的沉浸式用戶體驗!!!

爲了實現出沉浸式效果,隱去沒必要要的系統控件影響咱們的即視感,可是小夥伴,你酌情使用,畢竟沉浸式體驗除了在電影,手遊,在其餘行業貌似還用的相對較少,不過無論用不用,你仍是先收藏一個唄,實現就簡單了,重寫onWindowFocusChanged方法。

 1 /**
 2      * 真正的沉浸式體驗,適用於SDK>=19
 3      * 能夠拉出導航欄
 4      */
 5     @Override
 6     public void onWindowFocusChanged(boolean hasFocus) {
 7         super.onWindowFocusChanged(hasFocus);
 8         if (hasFocus && VERSION.SDK_INT >= 19) {
 9             getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
10                     | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
11                     | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
12                     | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
13                     | View.SYSTEM_UI_FLAG_FULLSCREEN
14                     | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
15             );
16         }
17     }

見證奇蹟:小夥伴必定會發現,這個一下拉就能夠把系統導航欄弄出來,又不影響體驗,又沒影響美觀,這也是真正的沉浸式體驗。

 

 

額,喜歡的小夥伴,就動動你的小手點個贊吧,咱們在碼農之餘,美女仍是不可少矣!

轉載的小夥伴請在醒目位置附上本文連接:http://www.cnblogs.com/liushilin/p/5799381.html

相關文章
相關標籤/搜索