安卓 KOTLIN 用XML寫一個當光標滑過按鈕的時候,按鈕會顯示水波紋效果
时间: 2024-05-04 11:22:20 浏览: 39
在Android中,我们通常使用Selector和RippleDrawable来为按钮添加水波纹效果。下面是一个Kotlin代码示例,演示如何在XML中定义按钮以显示水波纹效果:
```xml
<Button
android:id="@+id/my_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Button"
android:background="@drawable/my_button_selector" />
```
在此示例中,我们为按钮设置了一个背景,即my_button_selector。接下来,在drawable文件夹中创建一个名为my_button_selector.xml的文件,该文件将定义按钮的Selector:
```xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/my_button_ripple" android:state_pressed="true" />
<item android:drawable="@drawable/my_button_ripple" android:state_focused="true" />
<item android:drawable="@drawable/my_button_normal" />
</selector>
```
在此Selector中,我们定义了三个状态:按下、聚焦和正常状态。在按下和聚焦状态下,我们将按钮的背景设置为my_button_ripple,这是一个RippleDrawable,它将显示水波纹效果。在正常状态下,我们将按钮的背景设置为my_button_normal,这是一个普通的Drawable。
最后,在drawable文件夹中创建一个名为my_button_ripple.xml的文件,该文件将定义水波纹效果:
```xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#000000" />
</shape>
</item>
</ripple>
```
在此RippleDrawable中,我们设置水波纹的颜色为默认的颜色控件高亮颜色。我们还定义了一个矩形形状,作为水波纹的遮罩。该矩形形状的颜色为黑色,但它实际上不会显示在屏幕上,只是作为水波纹的遮罩。
现在,当光标滑过按钮时,按钮将显示水波纹效果。
阅读全文