zoukankan      html  css  js  c++  java
  • android开发webview使用h5播放视频时横竖屏切换的解决方法

    1.xml代码
    <activity
    android:hardwareAccelerated="true"
    android:name=".WebViewActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:screenOrientation="portrait" />

    2.kotlin代码
    webView.webChromeClient = object : WebChromeClient() {
    override fun onShowCustomView(view: View, callback: WebChromeClient.CustomViewCallback) {
    super.onShowCustomView(view, callback)
    showCustomView(view, callback)
    }
    override fun onHideCustomView() {
    super.onHideCustomView()
    hideCustomView()
    }
    }

    private fun setStatusBarVisibility(visible: Boolean) {
    val flag = if (visible) 0 else WindowManager.LayoutParams.FLAG_FULLSCREEN
    window.setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN)
    }

    private var customView: View? = null
    private var customViewCallback: WebChromeClient.CustomViewCallback? = null

    private fun showCustomView(view: View, callback: IX5WebChromeClient.CustomViewCallback) {
    requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
    if (customView != null || view.parent != null) {
    callback.onCustomViewHidden()
    return
    }
    (window.decorView as FrameLayout).addView(view, FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT))
    customView = view
    setStatusBarVisibility(false)
    customViewCallback = callback
    }

    private fun hideCustomView() {
    requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
    if (customView == null) {
    return
    }
    setStatusBarVisibility(true)
    (window.decorView as FrameLayout).removeView(customView)
    customView = null
    customViewCallback?.onCustomViewHidden()
    webView.visibility = View.VISIBLE
    }
  • 相关阅读:
    Miniconda 虚拟环境安装及应用
    python random使用方法
    MyQR库自动为网址生成二维码
    setResult()的调用时机
    Eclipse里选中一个变量后,这个类里的该变量不变色了?
    Android开发的技术层次
    最封闭的开源系统,话说Android的八宗罪
    制度是绝情的,管理是无情的,执行是合情的
    windows下eclipse搭建android_ndk开发环境
    UI/GUI/UE/UX/ID/UED/UCD的区别
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/13713674.html
Copyright © 2011-2022 走看看