pub struct VibrationEffect { /* private fields */ }
Expand description
VibrationEffect 描述了振动器执行的触觉效果。这些效果可以是任意数量,从单次振动到复杂波形。
Implementations§
Source§impl VibrationEffect
impl VibrationEffect
Sourcepub const DEFAULT_AMPLITUDE: i32 = -1i32
pub const DEFAULT_AMPLITUDE: i32 = -1i32
设备默认的振动强度。
Sourcepub const MAX_AMPLITUDE: i32 = 255i32
pub const MAX_AMPLITUDE: i32 = 255i32
最大振幅值
Sourcepub const EFFECT_CLICK: i32 = 0i32
pub const EFFECT_CLICK: i32 = 0i32
点击效果。使用此效果作为基准,因为它是最常见的点击效果类型。
Sourcepub const EFFECT_DOUBLE_CLICK: i32 = 1i32
pub const EFFECT_DOUBLE_CLICK: i32 = 1i32
双击效果。
Sourcepub const EFFECT_TICK: i32 = 2i32
pub const EFFECT_TICK: i32 = 2i32
勾选效果。与 EFFECT_CLICK 相比,此效果强度较低。
Sourcepub const EFFECT_THUD: i32 = 3i32
pub const EFFECT_THUD: i32 = 3i32
一个轰动的效果。
Sourcepub const EFFECT_POP: i32 = 4i32
pub const EFFECT_POP: i32 = 4i32
具有流行效果。
Sourcepub const EFFECT_HEAVY_CLICK: i32 = 5i32
pub const EFFECT_HEAVY_CLICK: i32 = 5i32
重击效果。此效果比 EFFECT_CLICK 更强。
Sourcepub const EFFECT_TEXTURE_TICK: i32 = 21i32
pub const EFFECT_TEXTURE_TICK: i32 = 21i32
一种纹理效果,用于复制柔软的滴答声。 与普通效果不同,纹理效果需要反复调用,通常是为了响应某些动作,以复制用户手指下方的某些纹理的感觉。
Sourcepub fn create_one_shot(milliseconds: i64, amplitude: i32) -> Self
pub fn create_one_shot(milliseconds: i64, amplitude: i32) -> Self
创建一次性振动。一次性振动将以指定的振幅持续振动指定的时间段,然后停止。
返回:所需的效果。
milliseconds
振动的毫秒数。这必须是正数。
amplitude
振动的强度。这必须是 1 到 255 之间的值,或 DEFAULT_AMPLITUDE。
Sourcepub fn create_predefined(effect_id: i32) -> Self
pub fn create_predefined(effect_id: i32) -> Self
创建预定义振动效果。预定义效果是一组常见的振动效果,无论它们来自哪个应用,它们都应该相同,以便为整个设备上的用户提供一致的体验。它们还可以根据设备硬件进行定制,以提供比使用通用构建块构建得更好的体验。如果存在通用模式,并且不存在特定于硬件的效果实现,则将回退到通用模式。
返回:所需的效果。
effect_id
要执行的效果的 ID:EFFECT_CLICK、EFFECT_DOUBLE_CLICK、EFFECT_TICK
Sourcepub fn get(effect_id: i32) -> Self
pub fn get(effect_id: i32) -> Self
获取预定义的振动效果。预定义效果是一组常见的振动效果,无论它们来自哪个应用,它们都应该相同,以便为整个设备上的用户提供一致的体验。它们还可以根据设备硬件进行定制,以提供比使用通用构建块构建得更好的体验。如果存在通用模式,并且不存在特定于硬件的效果实现,则将回退到通用模式。
返回:所需的效果。
effect_id
要执行的效果的 ID:EFFECT_CLICK、EFFECT_DOUBLE_CLICK、EFFECT_TICK
Sourcepub fn get_with_fallback(effect_id: i32, fallback: bool) -> Self
pub fn get_with_fallback(effect_id: i32, fallback: bool) -> Self
获取预定义的振动效果。预定义效果是一组常见的振动效果,无论它们来自哪个应用,它们都应该相同,以便为整个设备上的用户提供一致的体验。它们还可以根据设备硬件进行定制,以提供比使用通用构建块构建得更好的体验。您可能只想在有特定于硬件的实现时播放某些效果,因为它们可能会在不进行调整的情况下对用户造成太大的干扰。fallback 参数允许您决定是要回退到通用实现,还是仅在有经过调整的特定于硬件的实现时才播放。
返回:所需的效果。
effect_id
要执行的效果的 ID:EFFECT_CLICK、EFFECT_DOUBLE_CLICK、EFFECT_TICK
fallback
如果不存在特定于硬件的实现,是否回退到通用模式。
Sourcepub fn get_duration(&self) -> i64
pub fn get_duration(&self) -> i64
获取振动的预计持续时间(以毫秒为单位)。对于没有定义结束的效果(例如具有非负重复索引的波形),这将返回 Long.MAX_VALUE。对于持续时间未知的效果(例如长度取决于设备和可能取决于运行时间的预烘焙效果),这将返回 -1。
Sourcepub fn are_vibration_features_supported(&self, vibrator: &Vibrator) -> bool
pub fn are_vibration_features_supported(&self, vibrator: &Vibrator) -> bool
检查给定的振动器是否能按预期播放此效果。有关振动器支持哪些功能以及不支持哪些功能的更多信息,请参阅Vibrator#areVibrationFeaturesSupported(VibrationEffect)。
Sourcepub fn resolve(&self, default_amplitude: i32) -> Self
pub fn resolve(&self, default_amplitude: i32) -> Self
将默认值解析为整数振幅数字。
如果振幅值已设置,则返回此值;否则,返回具有给定默认振幅的此效果的副本隐藏
default_amplitude
要应用的默认振幅,必须介于 0 和 MAX_AMPLITUDE 之间
Sourcepub fn scale(&self, scale_factor: f32) -> Self
pub fn scale(&self, scale_factor: f32) -> Self
根据给定的约束缩放振动效果强度。
返回:如果没有缩放,则返回此值;否则,返回此效果的副本,并缩放振动强度
scale_factor
应用于强度的缩放因子。[0,1) 内的值将缩小强度,大于 1 的值将放大
Sourcepub fn apply_effect_strength(&self, effect_strength: i32) -> Self
pub fn apply_effect_strength(&self, effect_strength: i32) -> Self
将给定的效果强度应用于由 VibrationEffect.EFFECT_* 之一表示的预烘焙效果。
返回:如果此效果没有变化,则返回此效果;否则,返回应用了效果强度的此效果的副本。
effect_strength
要应用的新效果强度,VibrationEffect.EFFECT_STRENGTH_* 之一。
Sourcepub fn scale_intensity(intensity: f32, scale_factor: f32) -> f32
pub fn scale_intensity(intensity: f32, scale_factor: f32) -> f32
根据给定的因子缩放给定的振动强度。
intensity
效果的相对强度,必须介于 0 和 1 之间
scale_factor
应用于强度的比例因子。[0,1) 内的值将降低强度,大于 1 的值将增加强度