次要显示DisplayMetrics取决于主要显示?

时间:2019-04-15 18:47:16

标签: android

我有两种不同的平板电脑:

  • 10.1英寸平板电脑-1280x800 @〜149dpi
  • 15.6英寸平板电脑-1920x1080 @〜156dpi

这些平板电脑的实际物理(实际)规格都非常接近160dpi(其中1px等于1dp)。系统报告它们的精确度为 160dpi。很好,在这里没什么大不了的。

我还有一个辅助显示器。它具有与我的10.1英寸平板电脑相同的物理(实际)规格。但是,当我将其连接到两个不同的平板电脑并使用它来显示Android Presentation时,辅助显示器将报告完全不同的{{ 1}}。

连接到10.1英寸平板电脑时,辅助显示器报告:

  • 分辨率:1280x800
  • DPI:237.0
  • 密度:1.48125

连接到15.6“平板电脑时,辅助显示器报告:

  • 分辨率:1024x768
  • DPI:227.0
  • 密度:1.41875

是什么原因造成的?


应用程序本身就像石头一样愚蠢。我要做的就是创建一个DisplayMetrics对象,并在主显示屏和辅助显示屏上都显示一个虚拟的棋盘格布局。

我尝试使用PresentationMediaRouter API来查找我的DisplayManager和创建我的Display。它们都给出相同的结果。

Presentation
@Override
protected void onResume() {
    super.onResume();

    MediaRouter mediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
    MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO);

    if (route != null) {
        Display display = route.getPresentationDisplay();
        if (display != null) {
            Presentation presentation = new MyPresentation(this, display);
            presentation.show();
        }
    }
}

0 个答案:

没有答案