欢迎来到源码码网
帮助中心

源码码网

热门搜索: 淘宝客    点赞系统    虚拟商城源码    小程序源码   
免费发布需求
免费发布商品

Android开发多窗口模式(分屏模式)

  • 时间:2021-01-12 21:16 编辑:admin 来源:源码码网 阅读:175
  • 扫一扫,手机访问
摘要:Android N 支持多窗口模式,或者叫分屏模式,即在屏幕上可以同时显示多个窗口。在手机模式下,两个应用可以并排或者上下同时显示,如图 1 所示,屏幕上半部分的窗口是系统的 CLOCK 应用,下半部分是系统设置功能。用户可以拖动两个应用之间的分界线改变两个窗口的大小,放大其中一个应用,同时缩小另一个应用。

Android N 支持多窗口模式,或者叫分屏模式,即在屏幕上可以同时显示多个窗口。

在手机模式下,两个应用可以并排或者上下同时显示,如图 1 所示,屏幕上半部分的窗口是系统的 CLOCK 应用,下半部分是系统设置功能。用户可以拖动两个应用之间的分界线改变两个窗口的大小,放大其中一个应用,同时缩小另一个应用。

分屏模式

图 1  分屏模式

在分屏模式下,各个窗口的应用都可以正常运行,但是只能有一个窗口获得焦点,而另外的窗口则属于暂停状态。

Android N 用户可以通过以下方式切换到多窗口模式:

  • 用户打开 Overview 屏幕并长按 Activity 标题,可以拖动该 Activity 至屏幕突出显示的区域,使 Activity 进入多窗口模式。

  • 用户长按 Overview 按钮,设备上当前的 Activity 将进入多窗口模式,同时将打开 Overview 屏幕,用户可在该屏幕中选择要共享屏幕的另一个 Activity。


用户可以在两个 Activity 共享屏幕的同时在这两个 Activity 之间拖放数据。

默认情况下,Android N 的 Activity 都是开启多窗口模式的。在 Nexus 6P 手机上,分屏模式的启动和退出是长按多任务虚拟按键。

图 2 在 Nexus 6P 上启动分屏模式的样子:

Nexus 6P分屏模式

图 2  Nexus 6P 分屏模式

首先我们在 MainActivity 上添加一个按钮,并实现点击打开第二个 Activity 的功能,代码如下:


  1. public class MainActivity extends Activity {

  2. @Override

  3. protected void onCreate(Bundle savedInstanceState) {

  4. super.onCreate(savedInstanceState);

  5. setContentView(R.layout.activity_main);

  6. Button btn = findViewById(R.id.button);

  7. btn.setOnClickListener(new View.OnClickListener() {

  8. @Override

  9. public void onClick(View view) {

  10. Intent intent = new Intent(MainActivity.this, Main2Activity.class);

  11. startActivity(intent);

  12. }

  13. });

  14. }

  15. }

点击“新窗口”按钮后,第二个窗口会被创建,并覆盖掉第一个窗口,如图 3 所示。

新窗口

默认情况下,同一个应用的多个 Activity 会共用同一个窗口,且无法分配到不同窗口中。

若希望同一个应用的不同窗体可以被分配到不同窗口中,需要在启动新窗体时给 Intent 设置一个 FLAG_ACTIVITY_LAUNCH_ADJACENT 标志,这样新 Activity 就会在新的栈中被启动,独立于原来的 Activity,进而实现两个 Activity 被放置于不同的窗口中,如图 4 所示。

同一个应用的两个窗口


关键代码如下:

  1. Intent intent = new Intent(MainActivity.this, Main2Activity.class);

  2. intent.setFlags(Intent.FLAG_ACTIVITY_LAUNGH_ADJACENT|Intent.FLAG_ACTIVITY_NEW_TASK)

  3. startActivity(intent);


Android N 系统为 Activity 增添了<layout> 清单元素对 Activity 在多窗口模式中的行为进行支持,包括以下几种属性:

image.png


例如,以下代码显示了如何指定 Activity 在自由形状模式显示时 Activity 的默认大小、位置和最小尺寸:

  1. <activity android:name=".MyActivity">

  2. <layout android:defaultWidth="600dp"

  3. android:defaultHeight="500dp"

  4. android:gravity="top|end"

  5. android:minmalHeight="450dp"

  6. android:minimalWidth="300dp"/>

  7. </activity>

如果不想让 Activity 使用多窗口模式,只需要在清单文件中为 Activity 节点设置:

android:resizeableActivity="false"

此属性设置为 false,Activity 将不支持多窗口模式。在该值为 false 的情况下,如果用户尝试在多窗口模式下启动 Activity,该 Activity 将全屏显示。可自行尝试。


  • 全部评论(0)
最新发布的源码教程
【源码教程|开源源码】美容院共享店铺系统,共享美容院系统源码出售(2021-01-16 14:47)
【源码教程|Android教程】Android使用MediaRecorder进行视频录制(2021-01-14 20:44)
【源码教程|Android教程】Android Camera相机以及相机程序开发实例(2021-01-14 20:32)
【源码教程|Android教程】Android VideoView视频以及视频播放器实例(2021-01-14 20:02)
【源码教程|Android教程】Android使用MediaRecorder录制音频(2021-01-14 19:49)
【源码教程|Android教程】Android音频以及音频播放器开发实例(2021-01-14 19:40)
【行业资讯|】百度惊雷算法3.0即将上线 SEO快排时代即将结束?(2021-01-13 20:36)
【源码教程|Android教程】Android BroadcastReceiver:接收广播(2021-01-13 17:49)
【源码教程|Android教程】Android Service生命周期和使用方法(2021-01-13 17:42)
【源码教程|Android教程】Android调用相机进行拍照(2021-01-13 17:34)
联系我们

QQ:2494243972、1105326722

投诉举报:1105326722@qq.com

广告合作:QQ 110532672

源码码网手机版二维码
联系客服
手机版
源码码网手机版二维码
扫一扫进手机版
返回顶部