android 启动页面全屏播放视频

有时候大家在启动软件的时候,会看到有一个比较炫酷的短视频,觉得很有意思,现在做项目的时候也遇到了,跟大家分享一下。

首先,在 res 目录下建一个文件夹 raw, 把你的视频文件(.mp4等)放进去。

然后, 在 layout 添加布局文件 my_videoview.xml, 内容如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
<VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</RelativeLayout>

接着, 在工程里添加对应的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);  
    }  

}

扫描二维码关注公众号,回复: 11121969 查看本文章

然后,把布局文件 my_videoview.xml中的VideoView改成如下:

<xx.xx.xx.CustomVideoView 
        android:id="@+id/videoView"
        android:layout_width="match_parent"

        android:layout_height="wrap_content" />

把videoview 里的 VideoView 类改成自定义的 CustomVideoView , 如下: 

 final CustomVideoView vv = (CustomVideoView ) this.findViewById(R.id.videoView); 

重新编译运行,视频全屏播放,大功告成!!!


发布了10 篇原创文章 · 获赞 6 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/youmangu/article/details/80833902