app引导页面播放视频,videoview设置全屏.倒数秒数进入主页面

来源:互联网 发布:c编程题及答案 编辑:程序博客网 时间:2024/05/07 02:54

    一、概述

    最近老大新加了个需求。让我把启动页面改了播放视频,这样看起来更加酷炫点。我就大概写了个。记录下实现思路。首先,上结果图:

    

二、基本思路

   1.实现视频播放,且视频播放作为背景,视频要全屏。

        2.布局实现倒数数字和手动跳转按钮。

      至于其他权限之类就不用说了。

  下面贴代码:

   

package com.maxence.videostart;import android.app.ActionBar;import android.content.pm.ActivityInfo;import android.net.Uri;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.VideoView;import static android.R.attr.start;import static android.R.attr.x;public class MainActivity extends AppCompatActivity implements View.OnClickListener {    private MyVideoView vv_video;    private TextView tv_view; //   private String VideoUrl="http://minisite.adsame.com/nodie/v2.mp4";   // private String VideoUrl="http://183.59.160.61:30001/PLTV/88888905/224/3221227505/index.m3u8";    private String VideoUrl="http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8";    private Button btn_next;    private int startTime=10;    //   private String VideoUrl="http://gslb.miaopai.com/stream/oxX3t3Vm5XPHKUeTS-zbXA__.mp4";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);     //   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);        setContentView(R.layout.activity_video);        getSupportActionBar().hide();        initView();        initData();    }    private void initData() {        vv_video.setVideoURI(Uri.parse(VideoUrl));        vv_video.start();        tv_view.setText(startTime + "");            new Thread() {                @Override                public void run() {                    while (startTime>0) {                        try {                            Thread.sleep(1000);                        } catch (InterruptedException e) {                            e.printStackTrace();                        }                        startTime--;                        mHandler.sendEmptyMessage(0);                    }                }            }.start();    }    private void initView() {        vv_video = (MyVideoView) findViewById(R.id.vv_video);        tv_view = (TextView) findViewById(R.id.tv_view_time);        btn_next = (Button) findViewById(R.id.btn_next);        btn_next.setOnClickListener(this);    }    Handler mHandler = new Handler() {        @Override        public void handleMessage(Message msg) {            switch (msg.what) {                case 0:                    tv_view.setText(startTime+"");                    if(startTime==0){                        MainActivity.this.setContentView(R.layout.activity_main);                    }                    break;            }        }    };    @Override    public void onClick(View view) {            switch (view.getId()){                case R.id.btn_next:                    setContentView(R.layout.activity_main);                    break;            }    }}
  这里自己重写了下VideoView.原生的videoview无论怎么设置参数,都不能全屏的,重写很简单,就是在onmeasure里面修改下就行。

   

package com.maxence.videostart;import android.content.Context;import android.util.AttributeSet;import android.widget.VideoView;/** * Created by 27535 on 2017/11/29. */public class MyVideoView extends VideoView {    public MyVideoView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public MyVideoView(Context context, AttributeSet attrs) {       this(context, attrs,0);    }    public MyVideoView(Context context) {      this(context,null);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {                setMeasuredDimension(widthMeasureSpec,heightMeasureSpec);    }}
下面是xml的布局代码:

   

<?xml version="1.0" encoding="utf-8"?><FrameLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.maxence.videostart.MainActivity">   <com.maxence.videostart.MyVideoView       android:layout_width="match_parent"       android:layout_height="match_parent"       android:id="@+id/vv_video"       android:layout_alignParentLeft="true"       android:layout_alignParentRight="true"       android:layout_alignParentTop="true"       android:layout_alignParentBottom="true"       />   <TextView       android:layout_width="80dp"       android:layout_height="50dp"       android:background="#000000"       android:textColor="@android:color/white"       android:textSize="20sp"        android:gravity="center"        android:layout_marginRight="5dp"       android:layout_marginTop="5dp"       android:layout_gravity="right"       android:id="@+id/tv_view_time"       />    <Button        android:layout_width="272dp"        android:layout_height="50dp"        android:text="跳过"        android:id="@+id/btn_next"        android:gravity="center"        android:layout_gravity="bottom|center"        android:layout_marginBottom="30dp"        /></FrameLayout>

GitHub下载地址。


基本搞定。有疑问欢迎留言

阅读全文
0 0