有时候大家在启动软件的时候,会看到有一个比较炫酷的短视频,觉得很有意思,现在做项目的时候也遇到了,跟大家分享一下。
首先,在 res 目录下建一个文件夹 raw, 把你的视频文件(.mp4等)放进去。
然后, 在 layout 添加布局文件 my_videoview.xml, 内容如下:
android:layout_height="match_parent" >
android:layout_width="match_parent"
android:layout_height="wrap_content" />
接着, 在工程里添加对应的java文件,比如叫, videoview.java, 内容如下:
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class videoview extends Activity {
public static videoview inst = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
inst = this;
// 全屏显示
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.my_videoview);
/*主要代码起始位置*/
final VideoView vv = (VideoView) this.findViewById(R.id.videoView);
final String uri = "android.resource://" + getPackageName() + "/" + R.raw.herologo;
vv.setVideoURI(Uri.parse(uri));
vv.start();
vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mp.setLooping(false);
}
});
vv.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Intent intent = new Intent(inst, second.class);
startActivity(intent);
inst.finish();
}
});
/*主要代码结束位置*/
}
}
最后,需要在androidmanefest.xml 中声明下类 videoview;
不过自己测试的时候,发现视频在本人的手机上并没有全屏显示,而是在底部留下了不小的黑边(可能视频的尺寸与我的手机分辨率不一样)。于是搜索,发现重载VideoView 的某些方法可以重新设置视频播放器的大小。于是自定义类如下:
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);
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//我们重新计算高度(这样就可以匹配不同手机的尺寸)
int width = getDefaultSize(0, widthMeasureSpec);
int height = getDefaultSize(0, heightMeasureSpec);
setMeasuredDimension(width, height);
}
}
然后,把布局文件 my_videoview.xml中的VideoView改成如下:
android:layout_width="match_parent"
android:layout_height="wrap_content" />
把videoview 里的 VideoView 类改成自定义的 CustomVideoView , 如下:
final CustomVideoView vv = (CustomVideoView ) this.findViewById(R.id.videoView);
重新编译运行,视频全屏播放,大功告成!!!