触摸波纹

在 1.10.1 版本加入.

警告

此代码仍处于实验阶段,其API在未来的版本中可能会有所变动。

该模块包含一些`mixin <https://en.wikipedia.org/wiki/Mixin>`_类,用于为控件添加源自`Google Material Design <https://en.wikipedia.org/wiki/Material_Design>_`的触摸涟漪视觉效果。

关于行为的概述,请参阅 behaviors 文档。

TouchRippleBehavior 提供了涟漪动画的渲染功能。

TouchRippleButtonBehavior 基本上提供了与 ButtonBehavior 相同的功能,但渲染的是涟漪动画,而非默认的按下/释放可视化效果。

class kivy.uix.behaviors.touchripple.TouchRippleBehavior(**kwargs)[源代码]

基类:object

触摸波纹行为。

应作为mixin用于widget类上。

涟漪效果不会自动触发,具体实现需要手动调用 ripple_show()ripple_fade()

示例

这里我们创建了一个Label,用于在交互时渲染触摸波纹动画::

class RippleLabel(TouchRippleBehavior, Label):

    def __init__(self, **kwargs):
        super(RippleLabel, self).__init__(**kwargs)

    def on_touch_down(self, touch):
        collide_point = self.collide_point(touch.x, touch.y)
        if collide_point:
            touch.grab(self)
            self.ripple_show(touch)
            return True
        return False

    def on_touch_up(self, touch):
        if touch.grab_current is self:
            touch.ungrab(self)
            self.ripple_fade()
            return True
        return False
ripple_duration_in

显示遮罩层所需的动画持续时间。

ripple_duration_in 是一个 NumericProperty,默认值为 0.5

ripple_duration_out

覆盖层淡入淡出所需的动画持续时间。

ripple_duration_out 是一个 NumericProperty,默认值为 0.2

ripple_fade()[源代码]

完成当前控件上的波纹动画。

ripple_fade_from_alpha

波纹颜色动画起始时的Alpha通道。

ripple_fade_from_alpha 是一个 NumericProperty,默认值为 0.5

ripple_fade_to_alpha

涟漪颜色动画所针对的Alpha通道。

ripple_fade_to_alpha 是一个 NumericProperty,默认值为 0.8

ripple_func_in

显示覆盖层的动画回调。

ripple_func_in 是一个 StringProperty,默认值为 in_cubic

ripple_func_out

隐藏覆盖层的动画回调。

ripple_func_out 是一个 StringProperty,默认值为 out_quad

ripple_rad_default

动画开始的默认半径。

ripple_rad_default 是一个 NumericProperty,默认值为 10

ripple_scale

动画叠加层的最大缩放比例,根据装饰控件的最大(宽度/高度)计算得出。

ripple_scale 是一个 NumericProperty,默认值为 2.0

ripple_show(touch)[源代码]

在当前控件上开始波纹动画。

期望接收触摸事件作为参数。

class kivy.uix.behaviors.touchripple.TouchRippleButtonBehavior(**kwargs)[源代码]

基类:TouchRippleBehavior

这个 mixin 类提供了与 ButtonBehavior 类似的行为,但以触摸涟漪动画替代按钮按下/释放作为视觉效果。

事件:
on_press

当按钮被按下时触发。

on_release

当按钮被释放时触发(即按下按钮的触摸/点击消失)。

always_release

此属性决定当触摸释放(touch_up)发生在控件外部时,该控件是否触发 on_release 事件。

always_release 是一个 BooleanProperty,默认值为 False

last_touch

包含按钮接收到的最后一个相关触摸。这可以在`on_press`或`on_release`中使用,以了解是哪个触摸触发了该事件。

last_touch 是一个 ObjectProperty,默认值为 None