Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面

歡迎界面

在繼續下一部分,即視頻列表實現的介紹前,分享一下簡單的歡迎界面的實現。一來是可以整合一下前面說的側滑菜單和底部導航,二來是歡迎界面用到的子線程和TimerTask等知識是后續的部分所需的,這里就先提前說一下啦。

歡迎界面雖然名曰歡迎,其實並沒有太大的“歡迎”意義,一般用戶希望的是趕緊進入主頁面。但對於應用設計開發人員來說,歡迎頁面可以用來展示應用的版本,品牌標識等,可以起到強調品牌的作用,當然也可以把廣告投放在這里。歡迎界面最大的用處是,在用戶未進入主界面前加載好一些資源,比如網絡資源等,這樣用戶進入主界面時就不用再等待資源加載,從而提升用戶體驗。需要注意的是歡迎界面和引導頁的不同,引導頁一般是安裝后首次使用時才出現,用來展示一些應用的功能用法,更新的特性等等。

簡單實現

歡迎界面的實質就是讓用戶在進入主界面前等幾秒鍾,當時有過Android開發經歷的同學都知道,一旦我們的應用失去響應5秒以上,就會出現ANR(Application Not Responding)錯誤,導致應用被系統終止。所以,不能直接用sleep去讓主線程“睡”上幾秒鍾,而是需要在子線程中去做這件事。了解了這一點,實現的思路就很清晰了:首先有個WelcomeActivity,用來展示歡迎界面;然后在WelcomeActivity中開啟一個子線程;子線程要做的任務很簡單,即是在啟動應用幾秒后,開啟MainActivity,進入主界面。下面就一步步說明如何實現這個思路。

創建WelcomeActivity

這個應該很容易,創建一個WelcomeActivity,並設計它的布局。需要注意的是,因為WelcomeActivity現在成為了應用啟動的第一個Activity,所以需要在AndriodManifest配置文件中將WelcomeActivity設置為啟動Activity。public class WelcomeActivity extends AppCompatActivity {

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_welcome);

}

}

(WelcomeActivity.java代碼片段)

WelcomeActivity的代碼現在很簡單,只是設置了這個activity的布局,后面我們會在這個activity中添加其他的一些代碼。<?xml version="1.0" encoding="utf-8"?>

android:orientation="vertical" android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/welcomeLayout">

android:layout_height="wrap_content"

android:layout_gravity="center"

android:background="@drawable/welcome" />

(activity_welcome.xml代碼片段)

WelcomeActivity的布局很簡單,展示一張圖片,當然也可以復雜些,比如用個TextView來展示版本等。

在WelcomeActivity中創建子進程

可以用TimerTask來實現停頓幾秒后來進入主界面,當然也可以直接用Thread來創建一個子線程。

用TimerTask:Timer mTimer = new Timer();

TimerTask mTimerTask = new TimerTask() {

@Override

public void run() {

//在run方法中跳轉到mainActivity

}

};

mTimer.schedule(mTimerTask,5000);

用Thread:Thread startThread =new Thread(){

public void run(){

try{

sleep(5000);

}catch(Exception e){

e.printStackTrace();

}

finally {

//在finally中跳轉到MainActivity

}

}

};

startThread.start();

前面說過歡迎界面的最大用處是提前加載好一些資源,提升用戶的使用體驗,這部分的工作就可以通過在WelcomeActivity中創建的子進程中去完成。

進入MainActivity

進入MainActivity涉及到Activity之間的跳轉,一般的寫法為:Intent intent = new Intent(WelcomeActivity.this, MainActivity.class);

startActivity(intent);

finish();

我們先構建一個意圖,這個“意圖”用WelcomeActivity.this作為上下文,用MainActivity.class 作為目標Activity。很明顯我們的“意圖”是用WelcomeActivity.this作為上下文來啟動MainActivity。這樣的意圖是顯式意圖;另外一種方式是隱式意圖,這里不再說明。startActivity函數根據指定的意圖來啟動一個Activity,finish()函數表示結束當前的Activity,即WelcomeActivity。針對一般的Activity界面跳轉,也可以把上面的這段代碼封裝一下,public static void actionStart(Context context, String arg){

Intent intent = new Intent(context,MainActivity.class);

intent.putExtra("arg",arg);

context.startActivity(intent);

}

把這個靜態方法提供給其他類來使用,這樣做會比較規范,特別是需要在類和類之間傳遞一些參數時就顯得很實用了(看了第一行代碼后學到的)。比如在WelcomeActivity中你可以用這樣的方式來啟動MainActivityMainActivity.actionStart(WelcomeActivity.this,"hello main activity");

我們再為這個這個歡迎界面添加一點動畫效果AlphaAnimation welcomeAnimation = new AlphaAnimation(1.0f,0.1f);

welcomeAnimation.setDuration(5000);

welcomeLayout.setAnimation(welcomeAnimation);

這個動畫實現一種漸淡的效果。

編輯AndriodManifest

最后別忘了修改AndriodManifest配置文件,首先注冊我們創建的WelcomeActivity,然后讓它成為啟動Activity。

運行調試

調試運行,暫時沒有太大的問題,上方的ActionBar為了美觀可以考慮去掉。

整合

現在可以將前面的側滑菜單以及底部導航部分整合到一起,再加上WelcomeActivity,就算是一個半成品的界面設計了。

測試源碼

Reference

android 全景播放器,Android VR Player(全景視頻播放器) [5]:簡單的歡迎界面相关推荐

  1. android朋友圈播放视频,仿:Android - 微信 - 朋友圈 - 小視頻播放,多 4 句廢話算我輸...

    為了您的直觀體驗,請務必看完下面 gif 圖,源碼 gitHub 鏈接在其之后. 做這個東西的目的是: 完善畢設: 一個沒依賴各種雲,而使用C++和Golang做后端的仿微信APP 為了避免大家浪費時 ...

  2. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...

    本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...

  3. android fragment 管理器,Android Fragment 與 Fragment管理器

    Android Fragment 與 Fragment管理器 首先談談Fragement的需求 過去開發人員認為界面之間的跳轉只需要使用多個activity組成就行了: 例如下圖中,在Activity ...

  4. android videoview开发播放比例16比9,VideoView按原始視頻比例播放

    正常還是建議用mediaplayer+sufaceview 實現視頻播放.但是由於只是實現簡單的播放功能我就使用了videoview,用videoview播放視頻存在的問題就是在固定好的寬高內播放視頻 ...

  5. vlc android demo,使用VLC-Android寫一個簡單的電視直播demo

    使用VLC-Android寫一個簡單的電視直播demo 近兩年每天各種新的"干貨"出來,可以說真的是百花齊放百家爭鳴,每天也有各種各樣不同的文章在簡書和各大平台上嶄露頭角.而我就比 ...

  6. android nv21 nv12,視頻存儲格式YUV420 NV12 NV21 i420 YV12

    1)YUV簡介 YUV格式有兩大類:planar和packed. 對於planar的YUV格式,先連續存儲所有像素點的Y,緊接着存儲所有像素點的U,隨后是所有像素點的V. 對於packed的YUV格式 ...

  7. Android VR Player(全景视频播放器) [10]: VR全景视频渲染播放的实现(exoplayer,glsurfaceview,opengl es)

    前言 此博客的大部分内容来自我的毕业设计论文,因此语言上会偏正式一点,如果您有任何问题或建议,欢迎留言.在此感谢实验室的聂师兄,全景视频render部分的代码设计主要参考了他所编写的代码来完成,他对视 ...

  8. Android VR Player(全景视频播放器) [9]:ExoPlayer播放器MPEG-DASH视频播放

    前言 DASH视频播放初始加载时间更短 在之前的博客中 Nginx 搭建DASH服务器 中对如何搭建DASH服务器和视频处理做了分享.由于DASH具有动态码率自适应的特点,正好可以应用于VR视频这样平 ...

  9. Android VR Player(全景视频播放器) [7]:视频列表的实现-网络视频

    Android VR Player(全景视频播放器) [7]:视频列表的实现-网络视频 前期准备 在之前的博文,Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频 ...

最新文章

  1. New Android Application 的介绍
  2. 【IOS 开发】Objective-C Foundation 框架 -- 字符串 | 日期 | 对象复制 | NSArray | NSSet | NSDictionary | 谓词
  3. 读书笔记之如何阅读一本书
  4. Delphi读写二进制文件
  5. 作者:夏帆(1988-),男,华东师范大学计算机科学与软件工程学院博士后。...
  6. Flutter LayoutBuilder 用来获取父布局的尺寸大小
  7. 妙用遨游抓包找fckeditor上传木马路径
  8. java常用的空对象 null
  9. mysql_safe作用_mysqld_safe
  10. 【李宏毅2020 ML/DL】P45-50 Network Compression
  11. 带通滤波器作用和用途_常见低通、高通、带通三种滤波器的工作原理
  12. 从应用层修改系统日期和时间
  13. 电源大师课笔记 1.3
  14. 玩客云服务器怎么卖,玩客云使用教程;低价NAS怎么打造;玩客云现在还值得入手吗?-聚超值...
  15. 大陆计算机科学家排名,韩家炜、张宏江2位校友在世界顶尖计算机科学家排名中分别位居华人科学家和中国大陆科学家之首...
  16. guide, manual, tutorial之间的区别
  17. 数字电路 时序逻辑电路
  18. 30系列显卡安装tensorflow1.15
  19. 仿b站的动漫视频网站
  20. TensorRT量化-FP16和INT8

热门文章

  1. iview 级联选择组件_iviewui级联选择 如何自定义?
  2. stm32cubeMX+FreeRTOS(1)——点灯
  3. linux系统日志的查看和采集
  4. 非接触式IC卡性能简介(M1)
  5. Python OpenCV 之图像乘除与像素的逻辑运算,图像处理取经之旅第 17 天
  6. 自动化测试面试题及答案大全(上)
  7. win7虚拟机_VMware11虚拟机安装教程
  8. Windows Mobile的系统程序与控制面板的各项命令参数列表
  9. 递归神经网络RNN——LSTM
  10. 马云最新分析:未来3年投资四万从事这两大行业,一年后年入百万