Android画中画窗口开启方法

 更新时间:2023年01月04日 16:34:23   作者:知奕奕  
Android8.0 Oreo(API Level26)允许活动启动画中画Picture-in-picture(PIP)模式。PIP是一种特殊类型的多窗口模式,主要用于视频播放。PIP模式已经可用于Android TV,而Android8.0则让该功能可进一步用于其他Android设备

基础画中画

manifest 设置

为了适配开启画中画状态时窗口的大小尺寸变化合理,我们需要修改 activity 中的对应属性

请为您的主 activity 添加如下属性

  • configChanges 当 activity 尺寸变化是走出适配
  • launchMode 若使用画中画,则必须单任务执行
  • resizeableActivity 确保可以重新调节 activity 尺寸
  • supportsPictureInPicture 开启画中画支持
<activity
    android:name=".MainActivity"
    android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
    android:exported="true"
    android:launchMode="singleTask"
    android:resizeableActivity="true"
    android:supportsPictureInPicture="true">
    <meta-data
        android:name="android.app.lib_name"
        android:value="" />
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

布局

即一线性布局,配上 videoview,使他充满整个屏幕宽高

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <VideoView
        android:id="@+id/video"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

开启画中画

定义一个开启画中画的方法 minimize

private fun minimize() {
    // 画中画builder
    var builder = PictureInPictureParams.Builder()
    // rational设定尺寸大小
    val info = Rational(video.width, video.height)
    builder.setAspectRatio(info).build()
    // 开启画中画
    enterPictureInPictureMode(builder.build())
}

为了简化使用,我们定义:在按下导航栏的 home 键时,整个 activity 缩小成画中画形式,并仅展示 videoview

这一步骤可以通过重写 onUserLeaveHint 方法实现

override fun onUserLeaveHint() {
    minimize()
}

上传一个你喜欢的视频,插入组件,运行程序即可

目前还未做 UI 优化,所以整体结构还是很丑

到此这篇关于Android画中画窗口开启方法的文章就介绍到这了,更多相关Android画中画内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android dumpsys简介

    Android dumpsys简介

    本文详细介绍了Android系统中的dumpsys工具,包括其原理、使用方法、环境要求和相关概念,dumpsys是一个强大的系统诊断工具,可以帮助开发者了解系统服务状态,分析问题,并设计新功能,感兴趣的朋友一起看看吧
    2025-03-03
  • 一分钟快速定位Android启动耗时问题

    一分钟快速定位Android启动耗时问题

    做开发除了实现功能,还要注重优化,性能优化包括的东西还是非常多的,下面这篇文章主要给大家介绍了关于如何通过一分钟快速定位Android启动耗时问题的相关资料,需要的朋友可以参考下
    2021-07-07
  • Android之rk3588 开发环境准备及问题解决方法

    Android之rk3588 开发环境准备及问题解决方法

    这篇文章主要介绍了Android中的rk3588 开发环境准备,本文给大家分享遇到的问题及解决方法,本文给大家讲解的非常详细对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-11-11
  • Android图片压缩(质量压缩和尺寸压缩)

    Android图片压缩(质量压缩和尺寸压缩)

    本篇文章主要介绍介绍了Android图片压缩(质量压缩和尺寸压缩),具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • 解析libcurl在android下的移植、编译与测试

    解析libcurl在android下的移植、编译与测试

    本篇文章是对libcurl在android下的移植、编译与测试进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 仿iphone中短信以及通话记录的时间显示

    仿iphone中短信以及通话记录的时间显示

    本篇文章是对仿iphone中短信以及通话记录的时间显示进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Android实现图片文字识别

    Android实现图片文字识别

    这篇文章主要为大家详细介绍了Android实现图片文字识别,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • Android稳定性:可远程配置化的Looper兜底框架

    Android稳定性:可远程配置化的Looper兜底框架

    这篇文章主要为大家介绍了Android稳定性可远程配置化的Looper兜底框架实例实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • android notification 的总结分析

    android notification 的总结分析

    notification是一种出现在任务栏的提示,特别是在4.0以后notification改进了不少,本文内容都是基于4.0及4.1以后总结来的
    2013-05-05
  • Android 点击屏幕空白处收起输入法软键盘(手动打开)

    Android 点击屏幕空白处收起输入法软键盘(手动打开)

    很多时候,我们在使用应用时,会出现输入法软键盘弹出的问题,通常情况下,我们默认会使用户点击返回键或者下一步对软键盘进行隐藏。为了更好的体验,我们可以实现当用户使用完毕软键盘时。点击屏幕空白即可实现收起输入法软键盘
    2016-12-12

最新评论