问题标签 [android-displaymanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何在表面视图中显示其他应用程序?
我想在我的应用 SurfaceView 中镜像例如 Waze:
我收到权限被拒绝错误:
我有解决方法吗?这有没有可能?
android - 我们如何使用 setLaunchDisplayId() 将 Activity 显示为横向?
在这个示例项目中,我MainActivity
的代码可以在外部显示器上启动一个单独的活动,使用setLaunchDisplayId()
on ActivityOptions
:
ExternalDisplayActivity
在外接显示器上正常启动。然而; 它以纵向模式显示,而不是横向模式。使用真实显示器和“设置”中“开发人员选项”中的模拟外部显示器都会发生这种情况。
奇怪的是,尽管我android:screenOrientation="landscape"
在ExternalDisplayActivity
清单条目上有并且我在运行时请求景观,但还是出现了这种情况:
如果我使用一个Presentation
较旧的 API,景观可以工作,但我无法弄清楚如何让景观与setLaunchDisplayId()
路线一起工作。
android - 如何为 DisplayManager 创建的 VirtualDisplay 指定 layerStack?
根据android的官方文档: 虚拟显示器
虚拟显示器可以与主显示器(层堆栈)共享同一组图层,也可以拥有自己的一组。
众所周知,DisplayManager.createVirtualDisplay() 可以创建虚拟显示器。但它似乎总是与主显示(镜像内容)具有相同的层堆栈。如何设置不同的层堆栈?
android - 以编程方式更改主显示分辨率
我正在尝试更改 Android 8.1 上主显示器的显示分辨率。我从内核(基于 EDID)收到一个事件,告诉我需要更改模式。
然后我基本上做:
这会正确更新 surfaceflinger、显示 hal 和内核,但 windowmanager/display 在我运行之前不会更改分辨率:
但是 wm 调用这些函数,这似乎有点过于苛刻,并且还将大小/密度存储在持久设置中:
我一直在查看 windowmanager/display 中的代码,但没有找到我应该使用的 API。
有没有办法通知 windowmanager/display 有关 surfaceflinger 的变化,或者我错过了我可以使用的 API?
我会以错误的方式解决这个问题吗?是否有适当的方法可以更改主显示器的分辨率/模式,但我还没有找到?
android - 如何将活动视图分成两个显示/屏幕
我正在研究安卓汽车,
我需要将活动视图分为两部分,例如主显示中的半视图和RSE(Rear-Seat) 显示中的另一半视图。
我可以知道该怎么做吗?
AOSP 的哪个部分/API 需要查看?
android - 如何同步第二个屏幕并使其可点击?
我正在为双显示设备制作一个应用程序,用于 1:1 面对面咨询。
基本上,辅助屏幕是不可点击的。所以,我需要做的是实现一个演示。
但有些活动是共享屏幕。因此,它必须在两个屏幕中都可以点击。默认情况下,第二个屏幕不可点击,但第二个监视器显示相同的屏幕。为了使它可点击,我需要为它实现表示类。但是,实施它需要很多时间。那么,有没有更简单的方法来分享第二屏和可点击呢?
(在演示中,视图是可点击/可滚动/等)
android - 从可绘制的画布位置到 Android 中的 WindowManager 矩阵或显示矩阵?
我正在尝试为我的计算器应用程序制作闪光灯。我使用淡入淡出的视图创建了闪光灯。我可以将闪光灯定位在某些设备密度中需要的位置,但在其他设备密度中则不行。
我创建了一个drawable来绘制数学表达式。我需要使闪光灯位于可绘制对象中绘制的最后一个字符。
我需要存储在可绘制的画布内绘制的最后一个字符的位置。然后,我需要将该位置转换为窗口坐标。因此,我可以将闪光灯视图定位在最后绘制的字符的同一位置。
我正在尝试获取 WindowManager 的矩阵,但我找不到它。我阅读使用 WindowMetrics.getBound() 给出了一个具有窗口大小的 Rect 。但是,WindowMetrics 是在 API 30 中添加的。
我需要使用另一种替代方法,因为应用程序在 API ≤ 30 上运行。 如何获取 WindowManager 的矩阵,以便将画布内最后绘制字符的位置转换为窗口坐标?
java - 如何在 Android Studio 中显示屏幕尺寸(简单方式)?
我正在尝试向 logcat 显示屏幕宽度和高度。
但是对于像我这样刚接触Android StudioDisplayMetrics
和Display
在 Android Studio 中的人来说,公认的解决方案是令人困惑和复杂的。
目前,我知道如何做到这一点:
但是,.getMetrics
已弃用。因此,代码将宽度和高度返回为null
.
(我正在观看有关这些概念的旧视频)有什么办法可以更改此代码并将我的知识调整为
Display
和的现代方法DisplayMetrics
?有
DisplayMetrics
什么Display
不同?在文档中,它将它们描述为提供显示大小的两种工具。或者被DisplayMetrics
用作参数Display
?
谢谢!!
android - 如何显示在 VirtualDisplay 中打开的最后一个活动?
我创建了一个虚拟显示器并在其中打开了设置。如果我在设置中打开了一些其他活动,例如:wifi 页面。然后我按下主页按钮并返回最后打开的活动应该在虚拟显示器中。
现在,它即将到来的空白页。请指导在已创建的虚拟显示中检索上次打开的活动。
android - 如何在 Android TV 上读取真正的原生物理显示分辨率?
我正在尝试在我的 Android TV 设备上读取真实的物理显示分辨率。我有两台测试电视:
- 全高清,1920 x 1080 分辨率
- 具有 3840 x 2160 分辨率的超高清
和 1 个带有 Android 9 的 Android TV HDMI 棒。
我想根据电视设备读出真实的物理屏幕分辨率。为此,我尝试以两种方式读出 displayMetrics:
试图:
试图:
不幸的是,我的 UHD 设备显示我提到的两次尝试都是 1920x1080。我对某些按比例缩小的显示分辨率不感兴趣。
编辑:正如@IanGClifton 回答的那样,我用DisplayCompat
. 我有一个在 Andorid 9 上运行的 AndroidTV“Stick”,它通过 HDMI 插入任何电视(插入上述 3840x2160 像素的 UHD 电视)设备。我闪动 Stick 并且physicalWidth
仍然physicalHeight
告诉我 1920x1080 像素。
但是,当我直接刷新 Android TV 设备(不是 Android TV 棒)时,我得到了正确的分辨率。
如何读出任何设备的真实本机物理显示分辨率(以像素为单位)?