前言:有人问我,即便梦想成真了又能怎样,或许不能怎样,但这是梦想。
介绍:最近开发需要弄一个像QQ一样的登陆界面(界面要用视频做背景),上网发现这个博主介绍的比较好,便转载来分享给更多的人。
先看看效果
注意事项(代码里也标注出来了):
- 视频资源要添加res文件夹下创建raw文件夹
- 需要在onRestart()方法里重新加载视频,防止退出返回时视频黑屏
- 我这样写简单粗暴而已,当然,也可优雅的以自己看播放控件的VideoView处理方法,去处理资源释放和播放显示的问题。
- 记得修改布局控件
/**
* Created by DaQiE on 2017/2/20 0020.
*/
public class CustomVideoView extends VideoView {
public CustomVideoView(Context context) {
super(context);
}
public CustomVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomVideoView(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);
}
@Override
public void setOnPreparedListener(MediaPlayer.OnPreparedListener l) {
super.setOnPreparedListener(l);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}
}
**主要代码类:
MainActivity**
/**
* 视频资源要添加res文件夹下创建raw文件夹
* 需要在onRestart()方法里重新加载视频,防止退出返回时视频黑屏
* 我这样写简单粗暴而已,当然,也可优雅的以自己看播放控件的VideoView处理方法,去处理资源释放和播放显示的问题。
* 记得修改布局控件<com.daqie.videobackground.CustomVideoView...引用的包名,不然会报错哦
* android:screenOrientation="portrait" 习惯性的把横竖屏切换也设置一下
* android:theme="@style/Theme.AppCompat.Light.NoActionBar" ActionBar也可以设置成不显示的状态,可以根据自己喜好和项目需求
*/
public class MainActivity extends AppCompatActivity {
//创建播放视频的控件对象
private CustomVideoView videoview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//加载数据
initView();
}
private void initView() {
//加载视频资源控件
videoview = (CustomVideoView) findViewById(R.id.videoview);
//设置播放加载路径
videoview.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video));
//播放
videoview.start();
//循环播放
videoview.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
videoview.start();
}
});
}
//返回重启加载
@Override
protected void onRestart() {
initView();
super.onRestart();
}
//防止锁屏或者切出的时候,音乐在播放
@Override
protected void onStop() {
videoview.stopPlayback();
super.onStop();
}
}
XML布局代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.daqie.videobackground.MainActivity">
<com.daqie.videobackground.CustomVideoView
android:id="@+id/videoview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
转载地址:https://blog.csdn.net/w630886916/article/details/60780371