# WelcomeVideoPager **Repository Path**: niuB_code/WelcomeVideoPager ## Basic Information - **Project Name**: WelcomeVideoPager - **Description**: Android酷炫欢迎页播放视频,仿蚂蜂窝自由行和慕课网 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-10 - **Last Updated**: 2021-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Android酷炫欢迎页播放视频,仿蚂蜂窝自由行和慕课网 >今天无意间看到了蚂蜂窝自由行的app,启动页很酷炫。我记得以前慕课网有个版本的app欢迎页也是播放视频的。 今天就顺手写一个,代码比较简单,高手请略过。 先看效果图: ![效果图](https://github.com/linglongxin24/WelcomeVideoPager/blob/master/screenshorts/effect.gif?raw=true) #一.资源准备 三个比较短小的视频:[视频下载](https://github.com/linglongxin24/WelcomeVideoPager/tree/master/app/src/main/res/raw) #二.开始编写代码 * 1.在项目的res下新建一个raw文件夹,放入准备好的这三个视频 * 2.自定义播放视频的CustomVideoView 在这个自定义View里面提供一个播放视频的方法。用户只需要传入播放路径就可以了,并且可一循环播放。 ```java package cn.bluemobi.dylan.welcomevideopager; import android.content.Context; import android.media.MediaPlayer; import android.net.Uri; import android.util.AttributeSet; import android.view.View; import android.widget.VideoView; /** * 可以播放视频的View * Created by yuandl on 2016-11-10. */ public class CustomVideoView extends VideoView { public CustomVideoView(Context context) { super(context); } public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public CustomVideoView(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), View.MeasureSpec.getSize(heightMeasureSpec)); } /** * 播放视频 * * @param uri 播放地址 */ public void playVideo(Uri uri) { if (uri == null) { throw new IllegalArgumentException("Uri can not be null"); } /**设置播放路径**/ setVideoURI(uri); /**开始播放**/ start(); setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { /**设置循环播放**/ mp.setLooping(true); } }); setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { return true; } }); } } ``` * 3.建立没个欢迎页面的Fragment去加载自定义视频View的视图 ```java package cn.bluemobi.dylan.welcomevideopager; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by yuandl on 2016-11-10. */ public class GuildFragment extends Fragment { private CustomVideoView customVideoView; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { customVideoView = new CustomVideoView(getContext()); /**获取参数,根据不同的参数播放不同的视频**/ int index = getArguments().getInt("index"); Uri uri; if (index == 1) { uri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/" + R.raw.guide_1); } else if (index == 2) { uri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/" + R.raw.guide_2); } else { uri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/" + R.raw.guide_3); } /**播放视频**/ customVideoView.playVideo(uri); return customVideoView; } /** * 记得在销毁的时候让播放的视频终止 */ @Override public void onDestroy() { super.onDestroy(); if (customVideoView != null) { customVideoView.stopPlayback(); } } } ``` * 4.界面布局 ```xml