美文网首页
VideoView 全屏显示

VideoView 全屏显示

作者: cifer_xiao | 来源:发表于2017-07-03 14:42 被阅读0次

    首先

    自定义一个Videoview,CustomVideoView,继承Videoview。构造函数,关键方法是onMeasure,其中getDefaultSize测量了宽和高的值。

    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);
        }
        /**
        *作用是返回一个默认的值,如果MeasureSpec没有强制限制的话则使用提供的大小.否则在允许范围内可任意指定大小
        * 第一个参数size为提供的默认大小,第二个参数为测量的大小
        *
        */
        @Override
        protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
            //super.onMeasure(widthMeasureSpec, 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);
        }
    }
    

    然后

    在活动中引用前,先在xml中定义CustomVideoView长和宽都是match_parent(因为是全屏。。),这里的还需要设置它的焦点(focusable)和focusableInTouchMode和clickable,皆为false。

    最后

    就是在活动中引用啦,videoview的setVideoURI方法找MP4的资源。我是直接在res中放了RAW的文件夹,把视频资源放在这里的。

    customVideoView.setVideoURI(Uri.parse("android:resource://"+this.getPackageName()+"/" +R.raw.welcomevideo));
    customVideoView.start();    //开始播放
    

    由于是app的welcome界面所以视频资源最好是循环播放的,因此调用了setOnCompletionListener方法:

     customVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mediaPlayer) {
                    customVideoView.start();
                }
            });
    
    注:有关videoview的方法后续有机会还会在更新,先写这么多

    相关文章

      网友评论

          本文标题:VideoView 全屏显示

          本文链接:https://www.haomeiwen.com/subject/isgacxtx.html