博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
视频做背景的登录注册界面效果
阅读量:796 次
发布时间:2019-03-25

本文共 3174 字,大约阅读时间需要 10 分钟。

1.首先在清单文件添加权限

2.在res目录下新建一个raw文件用来放视频

在这里插入图片描述
下面看代码:
3.首先xml文件 记住用相对布局

<--这里写登录注册的布局-->

4.自定义VideoView控件

public class CustomVideoView extends VideoView {    public CustomVideoView(Context context) {        super(context);    }    public CustomVideoView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public CustomVideoView(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        super.onMeasure(widthMeasureSpec, heightMeasureSpec);        setMeasuredDimension(View.MeasureSpec.getSize(widthMeasureSpec), View.MeasureSpec.getSize(heightMeasureSpec));    }    /**     * 播放视频     *     * @param uri 播放地址     */    public void playVideo(Uri uri) {        if (uri == null) {            throw new IllegalArgumentException("Uri can not be null");        }        /**设置播放路径**/        setVideoURI(uri);        /**开始播放**/        start();        setOnPreparedListener(new MediaPlayer.OnPreparedListener() {            @Override            public void onPrepared(MediaPlayer mp) {                /**设置循环播放**/                mp.setLooping(true);            }        });        setOnErrorListener(new MediaPlayer.OnErrorListener() {            @Override            public boolean onError(MediaPlayer mp, int what, int extra) {                return true;            }        });    }}

5.定义Fragment用来控制视频的播放暂停

public class VideoFragment extends Fragment{    private CustomVideoView customVideoView;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        customVideoView = new CustomVideoView(getContext());        /**获取参数,根据不同的参数播放不同的视频**/        Uri uri;        uri = Uri.parse("android.resource://" + getActivity().getPackageName() + "/" + R.raw.guide);        /**播放视频**/        customVideoView.playVideo(uri);        return customVideoView;    }    /**     * 记得在销毁的时候让播放的视频终止     */    @Override    public void onDestroy() {        super.onDestroy();        if (customVideoView != null) {            customVideoView.stopPlayback();        }    }}

6.登录界面的代码 注意代码先后顺序

public class ContentActivity extends AppCompatActivity {    private ViewPager viewpager;    private List
fragments; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_content); initView(); } private void initView() { viewpager = (ViewPager) findViewById(R.id.viewpager); viewpager.setOffscreenPageLimit(1); fragments = new ArrayList<>(); Fragment fragment1 = new VideoFragment(); fragments.add(fragment1); viewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @NonNull @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } }); }}

转载地址:http://qbjyk.baihongyu.com/

你可能感兴趣的文章