Android11/Android Q分屏功能实现

android11/Q分屏实现。

1、先确认支持分屏。

调用boolean supportsSplitScreenMultiWindow = 

                ActivityTaskManager.supportsSplitScreenMultiWindow(mContext);

确认是否支持分屏。

若返回false,修改frameworks\base\core\res\res\values\config.xml

 config_supportsSplitScreenMultiWindow为true

2、分屏调用

mActivityTaskMgr.getService().setTaskWindowingModeSplitScreenPrimary(mLeftTask.id, false);
mActivityTaskMgr.getService().resizeTask(mLeftTask.id,mSplitScreenRect,0);

可参考frameworks\base\packages\SystemUI\src\com\android\systemui\recents\OverviewProxyRecentsImpl.java

3、退出分屏

mActivityTaskMgr.getService().setTaskWindowingMode(mLeftTask.id, WINDOWING_MODE_FULLSCREEN, false);

4、中间分割线

frameworks\base\packages\SystemUI\src\com\android\systemui\stackdivider

Divider.java中添加。

遇到问题:

1、调用分屏接口setTaskWindowingModeSplitScreenPrimary后,并为退出分屏再次调用分屏接口,应用出现黑屏,希望有遇到此问题的可以讲解一下。

2、另请教,进入分屏后可切换右边窗口应用,是否有替换左边窗口应用的方式?

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Android实现分屏功能可以通过以下步骤实现: 1. 在AndroidManifest.xml文件中添加以下代码,以声明支持分屏功能: ``` <activity android:name=".YourActivity" android:resizeableActivity="true" android:splitMotionEvents="false" android:configChanges="orientation|screenSize" android:launchMode="standard"> <meta-data android:name="android.max_aspect" android:value="2.1" /> </activity> ``` 2. 在你的Activity中,可以通过调用setResizeable()方法来启用或禁用分屏功能。例如: ``` @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_activity_layout); setResizeable(true); } ``` 3. 处理屏幕方向变化。当用户将应用程序从全屏模式切换到分屏模式时,你的Activity将重新创建。你可以通过重写onConfigurationChanged()方法来处理屏幕方向变化。例如: ``` @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 处理横屏模式 } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // 处理竖屏模式 } } ``` 4. 在布局文件中使用约束布局或其他适应不同屏幕尺寸的布局方式,以确保你的应用程序在分屏模式下能够正常显示。 以上是在Android实现分屏功能的基本步骤。请注意,分屏功能的可用性取决于设备和操作系统的支持情况。某些设备可能不支持分屏模式,因此在开发应用程序时需要考虑到这一点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值