【有美女看】提升用户体验,你不得不知道的事儿——巧用全屏与沉浸式体验,让用户更舒心~...
最近公司項(xiàng)目中要求寫(xiě)一個(gè)視頻直播錄像及視頻觀(guān)看的功能,額,就本能地去看了一波當(dāng)下主流的一些視頻類(lèi)APP,發(fā)現(xiàn)在愛(ài)奇藝等播放器中,在播放視頻的時(shí)候都是fullScreen的,而這個(gè)在各大手游中也體現(xiàn)的比較多。
額,這個(gè)其實(shí)不算技術(shù)層次,但是為了我們的用戶(hù)體驗(yàn),我們不能不把每一個(gè)細(xì)節(jié)都做好,同時(shí),這也是追妹秘訣哦~
于是樓主就采用了愛(ài)奇藝這樣的設(shè)計(jì)風(fēng)格,打算隱去系統(tǒng)標(biāo)題欄和ActionBar。這里就跟大家分享一下這個(gè)如何實(shí)現(xiàn),大家可以根據(jù)情況采納。
?
?
1)首先我們來(lái)看看簡(jiǎn)單的一張圖片是怎樣顯示的。代碼很簡(jiǎn)單,我們只對(duì)Xml上放一張大圖。
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>額,顯示就很常規(guī)啦。
?
2)咳咳!搞什么飛機(jī),我只想看美女,給我那么多我不需要的東西做什么?好嘛,來(lái)實(shí)現(xiàn)全屏,隱去系統(tǒng)標(biāo)題欄,簡(jiǎn)單一句代碼。
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 // 實(shí)現(xiàn)全屏,去掉系統(tǒng)標(biāo)題欄,適合于游戲、電影等沉浸式體驗(yàn) 7 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN); 8 }運(yùn)行一下:
?
3)咳咳,別把時(shí)間給弄丟了呀,我想像餓了么一樣還要看到時(shí)間。哼,要是看美女看久了,沒(méi)注意時(shí)間被媳婦兒發(fā)現(xiàn)了可就不好了。
好嘛,那就把系統(tǒng)時(shí)間放出來(lái)嘛,其實(shí)也很簡(jiǎn)單啦,但是目前只支持SDK在21以上哦。下面兩種方式都可以。
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 }看看效果。
4)哎,要是可以想看的時(shí)候顯示,不想看的時(shí)候隱藏就好了。
也可以呀。
1 getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 2 | View.SYSTEM_UI_FLAG_FULLSCREEN);運(yùn)行。
小伙伴也許會(huì)想:靠,樓主你這什么審美,這一閃一閃的是啥?這樣還不如上一個(gè)好,簡(jiǎn)直是影響我看美女的心情。哎,關(guān)了關(guān)了。誰(shuí)會(huì)這么腦殘這樣弄。
5)話(huà)說(shuō)心急吃不了熱豆腐,我親愛(ài)的小伙伴你別方,我們還沒(méi)帶來(lái)重磅呢,app的沉浸式用戶(hù)體驗(yàn)!!!
為了實(shí)現(xiàn)出沉浸式效果,隱去不必要的系統(tǒng)控件影響我們的即視感,但是小伙伴,你酌情使用,畢竟沉浸式體驗(yàn)除了在電影,手游,在其他行業(yè)貌似還用的相對(duì)較少,不過(guò)不管用不用,你還是先收藏一個(gè)唄,實(shí)現(xiàn)就簡(jiǎn)單了,重寫(xiě)onWindowFocusChanged方法。
1 /** 2 * 真正的沉浸式體驗(yàn),適用于SDK>=19 3 * 可以拉出導(dǎo)航欄 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 }見(jiàn)證奇跡:小伙伴一定會(huì)發(fā)現(xiàn),這個(gè)一下拉就可以把系統(tǒng)導(dǎo)航欄弄出來(lái),又不影響體驗(yàn),又沒(méi)影響美觀(guān),這也是真正的沉浸式體驗(yàn)。
?
?
額,喜歡的小伙伴,就動(dòng)動(dòng)你的小手點(diǎn)個(gè)贊吧,我們?cè)诖a農(nóng)之余,美女還是不可少矣!
轉(zhuǎn)載的小伙伴請(qǐng)?jiān)谛涯课恢酶缴媳疚逆溄?#xff1a;http://www.cnblogs.com/liushilin/p/5799381.html
轉(zhuǎn)載于:https://www.cnblogs.com/liushilin/p/5799381.html
總結(jié)
以上是生活随笔為你收集整理的【有美女看】提升用户体验,你不得不知道的事儿——巧用全屏与沉浸式体验,让用户更舒心~...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JavaScript中instanceo
- 下一篇: Ext JS 6学习文档-第3章-基础组