Android: VideoView做背景仿常见APP登录动态页面
16lz
2021-01-23
登录布局就略过了。。。
关键是自定义了一下videoview并加载作为布局的背景。
package com.yinlei.videoviewloginimport android.content.Contextimport android.media.MediaPlayerimport android.util.AttributeSetimport android.view.KeyEventimport android.view.Viewimport android.widget.VideoViewclass CustomVideoView : VideoView{ constructor(context: Context?) : this(context,null) constructor(context: Context?,attrs: AttributeSet?) : this(context,attrs,0) constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { //重新计算高度 val width = getDefaultSize(0,widthMeasureSpec) val height = getDefaultSize(0,heightMeasureSpec) setMeasuredDimension(width,height) } override fun setOnPreparedListener(l: MediaPlayer.OnPreparedListener?) { super.setOnPreparedListener(l) } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { return super.onKeyDown(keyCode, event) }}
package com.yinlei.videoviewloginimport android.media.MediaPlayerimport android.net.Uriimport android.support.v7.app.AppCompatActivityimport android.os.Bundleimport android.widget.Toastimport kotlinx.android.synthetic.main.activity_main.*class MainActivity : AppCompatActivity() { val uriStrings = arrayListOf() var i = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) uriStrings.add("android.resource://$packageName/${R.raw.one}") uriStrings.add("android.resource://$packageName/${R.raw.two}") //加载视频文件 customVideoView.setVideoURI(Uri.parse(uriStrings[i])) //播放 customVideoView.start() i++ //监听播放状态 customVideoView.setOnCompletionListener { customVideoView.setVideoURI(Uri.parse(uriStrings[i])) if(i==0){ i += 1 }else{ i=0 } customVideoView.start() }//因为只有一个默认的接口方法,所以用Lambda// customVideoView.setOnCompletionListener(object: MediaPlayer.OnCompletionListener{// override fun onCompletion(mp: MediaPlayer?) {// }// }) }}
<?xml version="1.0" encoding="utf-8"?>
在activity代码中,简单的准备2 个视频,并循环加载播放他们。
加载raw文件夹下的资源(raw名不能写错了):
uriStrings.add("android.resource://$packageName/${R.raw.one}") //加载视频文件 customVideoView.setVideoURI(Uri.parse(uriStrings[i]))
更多相关文章
- 控件布局_FrameLayout(网格布局)
- listView显示多种布局 android
- Android Animation 为布局添加动画效果
- android 开发 RecyclerView 横排列列表布局
- 增加滚动布局
- android 加载 .gif 并一直刷新
- Android 四大组件+五大布局
- 在Android平台上加载本地库的危险性