您的位置:首页 > 移动开发

玩转慕课网App启动引导页效果

2016-01-29 23:12 507 查看
本文为作者(石岩)原创,转载请指明出处:

http://blog.csdn.net/a1002450926/article/details/50609587

今天给大家带来慕课网App的引导页面的效果实现,相信大家有用过慕课网App的小伙伴,在第一次使用时,会发现慕课网的App的效果很棒,但是同时会有一个疑问,这个引导页面是怎么实现的呢?下面带着这个疑问,岩仔为你揭开它的神秘面纱。

实现思路

我第一次打开慕课网App的引导页面,思考了一下,以为是用gif图片做的,后来经过反编译验证后,发现每个引导页面都是加载的一段视频。

既然我们知道每个页面都是视频的话,那么就很好做了有木有,我们可以引导页是一个Activity,里面通过ViewPager放置4个Fragment,每个Fragment都播放自己的视频就OK了。

所以我们最好自己自定义一个MCVideoView,然后提供一个设置播放资源的一个方法就OK了。

代码如下:

public class MCVideoView extends VideoView{

public MCVideoView(Context context) {
this(context,null);
}

public MCVideoView(Context context, AttributeSet attrs) {
super(context, attrs,0);
}

public MCVideoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), View.MeasureSpec.getSize(heightMeasureSpec));
}

public void playVideo(Context context,Uri uri){
if(uri==null){
throw new IllegalArgumentException("Uri can not be null");
}
//设置播放路径
setVideoURI(uri);
//开始播放
start();
setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer mp) {
//设置循环播放
mp.setLooping(true);
}
});
setOnErrorListener(new OnErrorListener() {

@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
return true;
}
});
}
}


演示效果如下:



源码如下:

MoocDemo.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: