droid_wrap::android::view

Struct Display

Source
pub struct Display { /* private fields */ }
Expand description

提供有关逻辑显示器的大小和密度的信息。显示区域有两种不同的描述方式。应用程序显示区域指定可能包含应用程序窗口的显示器部分,不包括系统装饰。应用程序显示区域可能小于实际显示区域,因为系统减去了状态栏等装饰元素所需的空间。 使用 WindowMetrics.getBounds() 查询应用程序窗口边界。实际显示区域指定应用程序在当前系统状态下可访问的显示器部分。在某些情况下,实际显示区域可能小于显示器的物理尺寸。使用 WindowManager.getCurrentWindowMetrics() 确定活动窗口的当前大小。 与 UI 相关的工作(例如选择 UI 布局)应依赖于 WindowMetrics.getBounds()。有关详细信息,请参阅 getRealSize / getRealMetrics。逻辑显示器不一定代表特定的物理显示设备,例如内部显示器或外部显示器。 根据当前连接的设备以​​及是否启用镜像,逻辑显示器的内容可能会显示在一个或多个物理显示器上。

Implementations§

Source§

impl Display

Source

pub const DEFAULT_DISPLAY: i32 = 0i32

默认的 Display ID,假设有一个主显示器,则为主显示器的 ID。

Source

pub const INVALID_DISPLAY: i32 = -1i32

无效的显示 ID。

Source

pub const INVALID_DISPLAY_WIDTH: i32 = -1i32

分辨率宽度无效。

Source

pub const INVALID_DISPLAY_HEIGHT: i32 = -1i32

分辨率高度无效。

Source

pub const INVALID_DISPLAY_REFRESH_RATE: f32 = 0f32

刷新率无效。

Source

pub const DEFAULT_DISPLAY_GROUP: i32 = 0i32

默认显示组 ID,假设有一个主显示器,则为主显示器的显示组 ID。

Source

pub const INVALID_DISPLAY_GROUP: i32 = -1i32

显示组 ID 无效。

Source

pub const FLAG_SUPPORTS_PROTECTED_BUFFERS: i32 = 1i32

显示标志:表示显示器支持合成存储在受保护图形缓冲区中的内容。如果设置了此标志,则显示设备支持合成受保护缓冲区。如果未设置此标志,则显示设备可能不支持合成受保护缓冲区;用户可能会在屏幕上看到空白区域而不是受保护的内容。安全 (DRM) 视频解码器可以分配受保护的图形缓冲区,以请求在视频解码器和外部显示接收器之间提供受硬件保护的路径。 如果没有可用的硬件保护路径,则可能无法合成存储在受保护图形缓冲区中的内容。应用程序可以使用此标志的缺失作为提示,表示它不应该为此显示使用受保护的缓冲区,因为内容可能不可见。例如,如果未设置标志,则应用程序可以选择不在此显示器上显示内容、显示信息性错误消息、选择备用内容流或采用不依赖受保护缓冲区的不同内容解码策略。

Source

pub const FLAG_SECURE: i32 = 2i32

显示标志:表示显示器具有安全的视频输出并支持合成安全表面。如果设置了此标志,则显示设备具有安全的视频输出并能够显示安全表面。它也可能能够显示 FLAG_SUPPORTS_PROTECTED_BUFFERS 受保护的缓冲区。如果未设置此标志,则显示设备可能没有安全的视频输出;用户可能会在屏幕上看到空白区域,而不是安全表面或受保护缓冲区的内容。 安全表面用于防止应用程序渲染到这些表面的内容出现在屏幕截图中或在非安全显示器上查看。安全视频解码器使用受保护的缓冲区来实现类似目的。应用程序通过指定 WindowManager.LayoutParams#FLAG_SECURE 窗口标志来创建具有安全表面的窗口。同样,应用程序通过在将安全视图附加到其包含窗口之前调用 SurfaceView#setSecure 来创建具有安全表面的 SurfaceView。应用程序可以使用此标志的缺失来提示它不应在此显示器上创建安全表面或受保护的缓冲区,因为内容可能不可见。例如,如果未设置该标志,则应用程序可以选择不在此显示器上显示内容,显示信息性错误消息,选择备用内容流或采用不依赖安全表面或受保护缓冲区的其他策略来解码内容。

Source

pub const FLAG_PRIVATE: i32 = 4i32

显示标志:表示该显示是私有的。只有拥有该显示的应用和已经在该显示上的应用才能在该显示上创建窗口。

Source

pub const FLAG_PRESENTATION: i32 = 8i32

显示标志:表示该显示器是演示显示器。此标志标识适合用作演示显示器的辅助显示器,例如外部或无线显示器。应用程序可以自动将其内容投影到演示显示器,以提供更丰富的第二屏幕体验。

Source

pub const FLAG_ROUND: i32 = 16i32

显示标志:表示显示屏为圆形。此标志标识显示屏为圆形、椭圆形或其他形状,不允许用户看到显示屏的所有逻辑角落。

Source

pub const FLAG_CAN_SHOW_WITH_INSECURE_KEYGUARD: i32 = 32i32

显示标志:表示在显示非安全键盘保护时,显示器可以显示其内容。此标志标识如果无需输入凭据即可关闭键盘保护,则辅助显示器将继续显示内容。使用的一个示例是虚拟显示器,其内容显示在系统无法直接看到的外部硬件显示器上。 TODO (b/114338689): 删除该标志并使用 IWindowManager#shouldShowWithInsecureKeyguard

Source

pub const FLAG_SHOULD_SHOW_SYSTEM_DECORATIONS: i32 = 64i32

显示标志:表示显示应显示系统装饰。此标志标识应显示系统装饰的辅助显示,例如状态栏、导航栏、主页活动或 IME。请注意,如果没有 FLAG_TRUSTED,此标志不起作用 TODO (b/114338689): 删除该标志并使用 IWindowManager#setShouldShowSystemDecors

Source

pub const FLAG_TRUSTED: i32 = 128i32

标志:信任该显示器可以显示系统装饰并接收输入,无需用户触摸。

Source

pub const FLAG_OWN_DISPLAY_GROUP: i32 = 256i32

标志:表示显示器不应该成为默认 DisplayGroup 的一部分,而应该成为新 DisplayGroup 的一部分。

Source

pub const FLAG_ALWAYS_UNLOCKED: i32 = 512i32

标志:表示显示屏应始终解锁。仅在未在默认显示组中的虚拟显示上有效。

Source

pub const FLAG_TOUCH_FEEDBACK_DISABLED: i32 = 1_024i32

标志:表示当用户触摸屏幕时,显示器不应播放音效或执行触觉反馈。

Source

pub const FLAG_OWN_FOCUS: i32 = 2_048i32

标志:表示显示器维持自己的焦点和触摸模式。 此标志在行为上与 com.android.internal.R.bool.config_perDisplayFocusEnabled 类似,但仅适用于特定显示器,而不是系统范围的所有显示器。 注意:必须信任显示器才能拥有自己的焦点。

Source

pub const FLAG_STEAL_TOP_FOCUS_DISABLED: i32 = 4_096i32

标志:表示显示器不应通过从另一个显示器窃取顶部焦点而成为顶部焦点显示器。 结果是只有目标输入事件(输入事件的 displayId 与显示器的 displayId 匹配)才能到达此显示器。如果系统仅由一个显示器组成,或者所有显示器都设置了此标志,则设置了此标志的显示器仍可成为顶部聚焦显示器。在这两种情况下,默认显示器都会成为顶部聚焦显示器。 注意:如果显示器是顶部聚焦显示器,或者显示器管理自己的焦点(通过 FLAG_OWN_FOCUS)或所有显示器管理自己的焦点(通过 标志),则显示器仅具有聚焦窗口。如果显示器没有聚焦窗口,则不会向其发送任何输入事件。因此,此标志仅与 FLAG_OWN_FOCUS 一起使用才有用,如果未设置,将被忽略。 注意:框架仅支持顶部聚焦显示屏上的 IME(b/262520411)。因此,在显示屏上启用此标志会隐式禁用显示任何 IME。这不是预期的行为,但在实施 b/262520411 之前无法修复。如果您需要在显示屏上使用 IME,请不要设置此标志。

Source

pub const FLAG_REAR: i32 = 8_192i32

显示器标志:表示显示器为后置显示器。此标志标识背对用户的互补显示器。

Source

pub const FLAG_SCALING_DISABLED: i32 = 1_073_741_824i32

显示标志:表示不应缩放显示内容以适应物理屏幕尺寸。仅用于开发以模拟具有较小物理屏幕的设备,同时保持密度。

Source

pub const TYPE_UNKNOWN: i32 = 0i32

显示类型:未知的显示类型。

Source

pub const TYPE_INTERNAL: i32 = 1i32

显示器类型:通过内部端口连接的物理显示器。

Source

pub const TYPE_EXTERNAL: i32 = 2i32

显示器类型:通过外部端口连接的物理显示器。

Source

pub const TYPE_WIFI: i32 = 3i32

显示类型:WiFi显示。

Source

pub const TYPE_OVERLAY: i32 = 4i32

显示类型:覆盖显示。

Source

pub const TYPE_VIRTUAL: i32 = 5i32

显示类型:虚拟显示。

Source

pub const STATE_UNKNOWN: i32 = 0i32

显示状态:显示状态未知。

Source

pub const STATE_OFF: i32 = 1i32

显示状态:显示屏关闭。

Source

pub const STATE_ON: i32 = 2i32

显示状态:显示屏亮。

Source

pub const STATE_DOZE: i32 = 3i32

显示状态:显示器在低功耗状态下处于打瞌睡状态;它仍然处于开启状态,但针对在设备非交互时显示系统提供的内容进行了优化。

Source

pub const STATE_DOZE_SUSPEND: i32 = 4i32

显示状态:显示器处于挂起低功耗状态,处于休眠状态;它仍处于开启状态,但 CPU 不会更新它。这可以用于以下两种情况之一:在设备处于非交互状态时显示系统提供的静态内容,或允许“Sidekick”计算资源更新显示。因此,CPU 不得在此模式下控制显示器。

Source

pub const STATE_VR: i32 = 5i32

显示状态:显示屏已开启并针对 VR 模式进行了优化。

Source

pub const STATE_ON_SUSPEND: i32 = 6i32

显示状态:显示器处于挂起的全功率状态;它仍然打开,但 CPU 不会更新它。这可以以两种方式之一使用:在设备处于非交互状态时显示系统提供的静态内容,或允许“Sidekick”计算资源更新显示。因此,CPU 不得在此模式下控制显示器。

Source

pub const COLOR_MODE_INVALID: i32 = -1i32

显示颜色模式:当前颜色模式未知或无效。

Source

pub const COLOR_MODE_DEFAULT: i32 = 0i32

显示色彩模式:显示器的默认或原生色域。

Source

pub const REMOVE_MODE_MOVE_CONTENT_TO_PRIMARY: i32 = 0i32

表示当显示屏被移除时,其所有活动将移至主显示屏,并且最顶层的活动将成为焦点。 TODO (b/114338689): 删除该标志并使用 WindowManager#REMOVE_CONTENT_MODE_MOVE_TO_PRIMARY

Source

pub const REMOVE_MODE_DESTROY_CONTENT: i32 = 1i32

表示当display被移除时,其所有堆栈和任务都将被移除,所有活动将按照通常的生命周期被销毁。 TODO (b/114338689): 删除该标志并使用 WindowManager#REMOVE_CONTENT_MODE_DESTROY

Source

pub fn get_display_id(&self) -> i32

获取显示 ID。 每个逻辑显示都有一个唯一 ID。默认显示 ID 为 DEFAULT_DISPLAY。

Source

pub fn get_unique_id(&self) -> Option<String>

获取显示器唯一 ID。 唯一 ID 与显示器 ID 不同,因为物理显示器在重新启动后具有稳定的唯一 ID。

Source

pub fn is_valid(&self) -> bool

如果此显示仍然有效,则返回 true;如果显示已被移除,则返回 false。如果显示无效,则此类的方法将继续报告最近观察到的显示信息。但是,在显示消亡后继续使用 Display 对象是不明智的(而且毫无意义)。如果重新连接具有相同 ID 的显示,则之前无效的显示可能会再次有效。 返回:如果显示仍然有效,则返回 True。

Source

pub fn get_layer_stack(&self) -> i32

获取显示器的层堆栈。每个显示器都有自己独立的层堆栈,表面放置在其上,由表面投射器进行管理。 返回:显示器的层堆栈编号。

Source

pub fn get_flags(&self) -> i32

返回描述显示器功能的标志组合。 返回:显示标志。

Source

pub fn get_type(&self) -> i32

获取显示类型。 返回:显示类型。

Source

pub fn get_owner_uid(&self) -> i32

获取拥有此显示屏的应用程序的 UID,如果显示屏归系统所有,则获得零。如果显示屏是私有的,则只有所有者可以使用它。

Source

pub fn get_owner_package_name(&self) -> Option<String>

获取拥有此显示屏的应用程序的软件包名称,如果显示屏归系统所有,则返回 null。如果显示屏是私有的,则只有所有者可以使用它。

Source

pub fn get_name(&self) -> String

获取显示器的名称。请注意,某些显示器可能会被用户重命名。 返回:显示器的名称。

Source

pub fn get_brightness_default(&self) -> f32

获取显示器配置的默认亮度。 返回:默认亮度介于 0.0-1.0 之间

Source

pub fn get_maximum_size_dimension(&self) -> i32

返回将发生的最大屏幕尺寸。这主要用于壁纸。

Source

pub fn get_rotation(&self) -> i32

返回屏幕从其“自然”方向的旋转。返回值可能是 Surface.ROTATION_0(无旋转)、Surface.ROTATION_90、Surface.ROTATION_180 或 Surface.ROTATION_270。 例如,如果设备具有自然高大的屏幕,并且用户已将其侧放以进入横向方向,则此处返回的值可能是 Surface.ROTATION_90 或 Surface.ROTATION_270,具体取决于旋转的方向。角度是屏幕上绘制图形的旋转,与设备的物理旋转方向相反。例如,如果设备逆时针旋转 90 度,为了补偿渲染将顺时针旋转 90 度,因此此处返回的值将是 Surface.ROTATION_90。此旋转值将与 getMetrics 的结果相匹配:这意味着如果通过活动访问,旋转值将与活动相对应。

Source

pub fn get_install_orientation(&self) -> i32

返回显示器的安装方向。

Source

pub fn get_orientation(&self) -> i32

👎Deprecated: 使用 getRotation

返回:此显示的方向。

Source

pub fn get_pixel_format(&self) -> i32

👎Deprecated: 此方法不再受支持。结果始终为 PixelFormat。RGBA_8888。

获取显示器的像素格式。 返回:PixelFormat 中定义的常量之一。

Source

pub fn get_refresh_rate(&self) -> f32

获取此显示器的刷新率(以每秒帧数为单位)。

Source

pub fn is_minimal_post_processing_supported(&self) -> bool

如果可以将连接的显示器切换到使用最小的后处理方式的模式,则返回true。如果显示器接收器通过HDMI连接,则如果显示屏支持自动低潜伏期模式或游戏内容类型,则此方法将返回true。如果显示器接收器具有内部连接或使用HDMI以外的其他协议,则如果可以将接收器切换到实现定义的低延迟图像处理模式,则此方法将返回true。 通过系统设置菜单中的用户设置,可以禁用使用最小后处理模式的模式的能力。在这种情况下,此方法返回false。

Source

pub fn request_color_mode(&self, color_mode: i32)

请求显示器应用颜色模式。 color_mode 颜色模式。

Source

pub fn get_color_mode(&self) -> i32

返回此显示的活跃颜色模式

Source

pub fn get_remove_mode(&self) -> i32

获取显示屏的当前移除模式 - 移除显示屏内容时应对其执行哪些操作。在这种情况下,公共显示屏的默认行为是将所有活动移至主显示屏并使其处于焦点状态。对于私人显示屏 - 销毁所有活动。 TODO (b/114338689): 删除方法并使用 IWindowManager#getRemoveContentMode

Source

pub fn is_hdr(&self) -> bool

返回此显示器是否支持任何 HDR 类型。

Source

pub fn is_hdr_sdr_ratio_available(&self) -> bool

显示器是否支持报告 hdr/sdr 比率。如果为 false,则 getHdrSdrRatio() 将始终为 1.0f

Source

pub fn clear_user_preferred_display_mode(&self)

删除显示器的用户首选显示模式。

Source

pub fn is_wide_color_gamut(&self) -> bool

返回此显示器是否可用于显示广色域内容。这并不一定意味着设备本身可以渲染广色域内容。要确保可以生成广色域内容,请参阅 Configuration.isScreenWideColorGamut()。

Source

pub fn get_app_vsync_offset_nanos(&self) -> i64

获取应用 VSYNC 偏移量(以纳秒为单位)。这是一个正值,表示 Choreographer 提供的 VSYNC 事件相对于显示刷新的相位偏移量。 例如,如果 Choreographer 报告刷新发生在时间 N,则它实际上发生在 (N - appVsyncOffset)。应用通常不需要知道这一点。它仅适用于细粒度的 A/V 同步。

Source

pub fn get_presentation_deadline_nanos(&self) -> i64

这是缓冲区必须提前多久排队等待在给定时间进行演示。如果您希望缓冲区在时间 N 出现在屏幕上,则必须在 (N - presentationDeadline) 之前提交缓冲区。 可以使用 android.opengl.EGLExt.eglPresentationTimeANDROID 设置 GLES 渲染所需的演示时间。对于视频解码,请使用 android.media.MediaCodec.releaseOutputBuffer(int, long)。时间以纳秒为单位表示,使用系统单调时钟 (System.nanoTime)。

Source

pub fn should_report_max_bounds(&self) -> bool

确定是否应将 WindowConfiguration.getMaxBounds() 报告为显示尺寸。当应用需要沙盒化时,最大边界字段可能小于逻辑尺寸。取决于 com.android.server.wm.ConfigurationContainer.providesMaxBounds() 中设置的 WindowConfiguration.getMaxBounds()。 在大多数情况下,此值反映当前 DisplayArea 的大小。当应应用最大边界时,返回 true。

Source

pub fn get_state(&self) -> i32

获取显示器的状态,例如是打开还是关闭。 返回:显示器的状态:STATE_OFF、STATE_ON、STATE_DOZE、STATE_DOZE_SUSPEND、STATE_ON_SUSPEND 或 STATE_UNKNOWN 之一。

Source

pub fn has_access(&self, uid: i32) -> bool

如果指定的 UID 有权访问此显示,则返回 true。 uid UID。

Source

pub fn is_public_presentation(&self) -> bool

如果显示是公共演示文稿显示,则返回true。

Source

pub fn is_trusted(&self) -> bool

如果显示器是受信任的显示器,则为 true。

Source

pub fn can_steal_top_focus(&self) -> bool

如果显示器可以从另一个显示器窃取顶部焦点,则为 true。

Source

pub fn is_suspended_state(state: i32) -> bool

如果在指定的显示器电源状态下可以暂停显示更新,则返回 true。在 SUSPEND 状态下,绝对禁止更新。 state 状态。

Source

pub fn is_doze_state(state: i32)

如果在指定的显示器电源状态下显示器可能处于降低的操作模式,则返回 true。 state 状态。

Source

pub fn is_active_state(state: i32)

如果显示器处于活动状态(例如 STATE_ON 或 STATE_VR),则返回 true。 state 状态。

Source

pub fn is_off_state(state: i32) -> bool

如果显示器处于关闭状态(例如 STATE_OFF),则返回 true。 state 状态。

Source

pub fn is_on_state(state: i32) -> bool

如果显示器处于开启状态(例如 STATE_ON 或 STATE_VR 或 STATE_ON_SUSPEND),则返回 true。 state 状态。

Source

pub fn is_width_valid(width: i32) -> bool

如果指定的宽度有效,则返回 true。 width 宽度。

Source

pub fn is_height_valid(height: i32) -> bool

如果指定的高度有效,则返回 true。 height 高度。

Source

pub fn is_refresh_rate_valid(refresh_rate: f32) -> bool

如果指定的刷新率有效,则返回 true。 refresh_rate 刷新率。

Methods from Deref<Target = GlobalRef>§

Source

pub fn as_obj(&self) -> &JObject<'static>

Get the object from the global ref

This borrows the ref and prevents it from being dropped as long as the JObject sticks around.

Methods from Deref<Target = JObject<'static>>§

Source

pub fn as_raw(&self) -> *mut _jobject

Returns the raw JNI pointer.

Trait Implementations§

Source§

impl Debug for Display

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for Display

Source§

type Target = GlobalRef

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl From<&GlobalRef> for Display

Source§

fn from(obj: &GlobalRef) -> Self

Converts to this type from the input type.
Source§

impl Into<GlobalRef> for &Display

Source§

fn into(self) -> GlobalRef

Converts this type into the (usually inferred) input type.
Source§

impl JObjNew for Display

Source§

type Fields = ()

字段类型
Source§

fn _new(this: &GlobalRef, fields: Self::Fields) -> Self

从java对象创建本地对象。 this java对象引用。
Source§

fn null() -> Self
where Self: Sized, Self::Fields: Default,

创建空对象。
Source§

impl JObjRef for Display

Source§

fn java_ref(&self) -> GlobalRef

获取java对象引用。
Source§

impl JType for Display

Source§

const CLASS: &'static str = "android/view/Display"

java类的名称。
Source§

const OBJECT_SIG: &'static str = "Landroid/view/Display;"

对象的签名描述。
Source§

type Error = Error

错误类型。
Source§

const DIM: u8 = 0u8

数组维度,0表示不是数组
Source§

impl PartialEq for Display

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl ToString for Display

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.