Android超酷的加載效果

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下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章