Android超酷的加载效果

来源:互联网 发布:男士护肤 知乎 编辑:程序博客网 时间:2024/05/16 16:13

Android超酷的加载效果

用过qq的人都知道qq刚打看是一个视频,看着比较酷,也比较神秘,今天抽时间看了下,其实也没有什么神秘的,就是一个播放视频

准备资料

下载一个视频,不要太大

代码编写

在项目资源目录 res 下新建资源文件夹 raw
放入刚下载的视频文件
自定义一个VedioView 因为你系统的VedioView 不管怎么怎么设置宽度和高度,视频播放的时候都无法全屏,所以还是自己计算宽高

LoadingVedio自定义视频播放控件

package com.loading.project.view;import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView;/** * Created by marven on 2017/11/23. * 自定义VideoView * */public class LoadingVedio extends VideoView{    public LoadingVedio(Context context) {        super(context);    }    public LoadingVedio(Context context, AttributeSet attrs) {        super(context, attrs);    }    public LoadingVedio(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        int width = getDefaultSize(0,widthMeasureSpec);        int height = getDefaultSize(0,heightMeasureSpec);        setMeasuredDimension(width,height);    }}

MainActivity

package com.loading.project;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.loading.project.view.LoadingVedio;public class MainActivity extends AppCompatActivity {    private LoadingVedio mVideoView;    private Button mButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        startVedio();        addListener();    }    /**     * 初始化控件     */    private void initView() {        mVideoView = (LoadingVedio) findViewById(R.id.mVideoView);        mButton = (Button) findViewById(R.id.mButton);    }    /**     * 播放     */    private void startVedio() {        //设置播放加载路径        mVideoView.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.guide_1));        //播放        mVideoView.start();    }    /**     *     */    private void addListener() {        //播放完成之后显示立即体验按钮        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mediaPlayer) {                mButton.setVisibility(View.VISIBLE);            }        });        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Toast.makeText(MainActivity.this,"立即体验",Toast.LENGTH_LONG).show();            }        });    }}

activity_main

package com.loading.project;import android.media.MediaPlayer;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.Toast;import com.loading.project.view.LoadingVedio;public class MainActivity extends AppCompatActivity {    private LoadingVedio mVideoView;    private Button mButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        startVedio();        addListener();    }    /**     * 初始化控件     */    private void initView() {        mVideoView = (LoadingVedio) findViewById(R.id.mVideoView);        mButton = (Button) findViewById(R.id.mButton);    }    /**     * 播放     */    private void startVedio() {        //设置播放加载路径        mVideoView.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.guide_1));        //播放        mVideoView.start();    }    /**     *     */    private void addListener() {        //播放完成之后显示立即体验按钮        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {            @Override            public void onCompletion(MediaPlayer mediaPlayer) {                mButton.setVisibility(View.VISIBLE);            }        });        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Toast.makeText(MainActivity.this,"立即体验",Toast.LENGTH_LONG).show();            }        });    }}

代码比较简单,不喜勿喷
demo下载