android studio 启动页的视频效果

很是羡慕,别人app 的启动页的视频效果。所以自己也做了一个。
首先要提醒大家的是:要做启动页,一定要在项目创建最初的那个activity里做,不然的话,改起来非常麻烦,并且,之后运行起来会黑屏。
那下面一步步的来,首先是第一个Activity,为了标识,我将它命名为SplashScreen.
然后,进入项目文件夹下即app\src\main\res,在res下新建一个文件夹Raw,将视频放在里面。即 R.raw.yu002。最后新建一个Activity,作为启动页跳转后的主页面,命名为MainActivity.下面是SplashScreen里面的代码。

import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class  SplashScreen extends AppCompatActivity {
    private CustomVideoView videoview;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash_screen);

        initView();
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent mainintent=new Intent(SplashScreen.this,MainActivity.class); //使用intent方法,在活动间跳转
                startActivity(mainintent);
                finish();
            }
        },6000);//设置等待时间,与跳转。




    } private void initView() {
        videoview = (CustomVideoView) findViewById(R.id.videoview);
        //设置播放加载路径
        videoview.setVideoURI(Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.yu002));
        //播放
        videoview.start();



    }
}

因为视频大小,规格可能与我们手机的大小不符,所以,我们要重写适配的代码。
我们在项目Java中新建一个Java class(和SplashScreen在一个目录下)命名,随便。只要有意义就好。代码如下。

import android.content.Context;
import android.media.MediaPlayer;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.widget.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 defStyle) {
        super(context, attrs, defStyle);
    }

    @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中。

你可能感兴趣的:(android,studio)