当前位置: 首页 > article >正文

Android——画中画模式

应用中的画中画

  • 监听回到桌面与打开任务列表的广播
  • 收到广播之后,调用 enterPictureInPictureMode 方法进入画中画模式
  • 重写活动页面的 onPictureInPictureModeChanged 方法,补充进入画中画模式或退出画中画模式时的处理逻辑

回到桌面与切到任务列表

  • 按下主页键会回到桌面,按下任务键会打开任务列表,这两个操作并未提供相应的按键处理方法,而是通过广播发出时间信息。
  • 若想知晓是否回到桌面,以及是否打开任务列表,均需收听系统广播Intent.ACTION_CLOSE_SYSTEM_DIALOGS
  • 从收到的广播意图中获取原因reason字段,该字段值为 homekey 时表示回到桌面,值为 recentapps 时打开任务列表

清单文件中配置 supportsPictureInPicture

        <activity
            android:name=".ReturnDesktopActivity"
            android:supportsPictureInPicture="true"
            android:exported="true">
        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                if (intent != null && intent.getAction().equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
                    String reason = intent.getStringExtra("reason");
                    if (!reason.isEmpty() && (reason.equals("homekey") || reason.equals("recentapps"))) {
                        // Android8.0开始才提供画中画模式
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && !isInPictureInPictureMode()) {
                            PictureInPictureParams.Builder builder = new PictureInPictureParams.Builder();
                            // 设置宽高比例值,第一个参数表示分子,第二个参数表示分母
                            // 下面的10/5=2,表示画中画窗口的宽度是高度的两倍
                            Rational ratio = new Rational(10, 5);
                            builder.setAspectRatio(ratio);
                            // 进入画中画模式
                            enterPictureInPictureMode(builder.build());

                        }
                    }
                }
            }
        };

案例代码


http://www.kler.cn/a/380186.html

相关文章:

  • 影刀RPA实战:嵌入python,如虎添翼
  • GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
  • 建立maven项目常见问题解决办法
  • HarmonyOS 移动应用开发
  • 常用的 Lambda 表达式案例解析
  • DFS求解迷宫最长移动路线
  • js、vue、angular中的函数声明方式及特点
  • docker下迁移elasticsearch的问题与解决方案
  • 关于 C# (C Sharp)测试
  • Spring Boot技术在校园社团管理中的高效应用
  • Javascript的进阶部分(DOM)操作 !!
  • ssm023实验室耗材管理系统设计与实现+jsp(论文+源码)_kaic
  • 开源与商业的碰撞TPFLOW与Gadmin低代码的商业合作
  • 机器视觉:ROI在机器视觉中的作用
  • Spring学习笔记_24——切入点表达式
  • Pwn学习笔记(10)--UAF
  • ElementUI中el-table双击单元格显示输入框
  • 基于SSM+小程序的高校寻物平台管理系统(失物1)
  • k8s简单的指令以及图解
  • 论文阅读:Computational Long Exposure Mobile Photography (二)
  • Spring3(代理模式 Spring1案例补充 Aop 面试题)
  • 使用commitizen用于项目git提交规范管理
  • HarmonyOS第一课 07 从网络获取数据-习题
  • 【python GUI编码入门-14】创建动态更新的Tkinter GUI应用
  • 【算法】【优选算法】双指针(下)
  • 了解bootstrap改造asp.net core MVC的样式模板