广告也精彩
目录

前言

Android 从4.2开始支持双屏显示,支持版本为17以上。

Android 双屏原理说白了,自定义一个Presentation类,Android 的标准实现是使用 API Presentation 来实现异显的功能。

public class Presentation extends Dialog {
}

从源码看,Presentation继承Dialog,可以看做一个升级版的弹窗。

正文

SecondScreen

public class SecondScreen extends Presentation {

    public SecondScreen(Context outerContext, Display display) {
        super(outerContext, display);
        //getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
        Log.d(TAG, "SecondScreen: ");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }

    @Override
    protected void onStop() {
        super.onStop();
    }

    @Override
    public void dismiss() {
        super.dismiss();
    }
}

添加到副屏

# 初始化displayManager
displayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
# 显示
Display[] displays = mDisplayManager.getDisplays();
  Log.d(TAG, "onResume displays.length  : " + (null != displays ? displays.length : 0));
  if (null != displays && displays.length >1) {
      //避免重复创建
      if (null == mSecondScreen) {
          mSecondScreen = new SecondScreen(MainActivity.this, displays[1]);
      }
      //避免重复显示
      if (!mSecondScreen.isShowing()) {
          mSecondScreen.show();
      }
  }

我试过,若果displays.lenght 为1时,如果

mSecondScreen = new SecondScreen(MainActivity.this, displays[0]);

会提示错误:

android.view.WindowManager$InvalidDisplayException: Unable to add window android.view.ViewRootImpl$W@62f0597 -- the specified display can not be found

也就说,当displays.length大于1(至少是2)时,才可以显示分屏。

一个屏可以显示多个Presentation ,也就是一层一层盖着,顶部显示的是最后显示的那个Presentation 。

参考文章

  1. Android双屏异显(Presentation)与后台动态配置副屏内容 - 知乎 (zhihu.com)
  2. Presentation | Android Developers (google.cn)

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。