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(,widthMeasureSpec);
int height = getDefaultSize(,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下載下傳