gpt4 book ai didi

android - 使用 xml 按下和释放之间的不同背景颜色?

转载 作者:行者123 更新时间:2023-11-29 17:08:50 25 4
gpt4 key购买 nike

编辑:

为了清楚地说明我在寻找什么,这正是我想要的。

当用户按住按钮(手指仍在屏幕上)时,我希望它显示一种颜色(例如默认的 Android 半透明波纹效果),然后,根据用户是否完成点击,(如果他们抬起他们的手指放在按钮上时,Android 会将其注册为点击,如果他们将手指移出按钮的范围然后抬起手指,Android 将不会将其注册为点击)我希望它显示不同颜色。

我正在寻找使按钮执行此操作的 xml 代码。

按住时,显示默认的 Android 波纹效果(简单),如果用户完成点击,则显示绿色波纹效果以示确认。如果用户没有完成点击,用户按住按钮的涟漪应该会逐渐消失。

到目前为止,这里或其他问题上的 xml 解决方案都没有做到这一点。所以我可能不得不在 onTouchListener 中手动执行此操作。

============================================= =======================

我正在尝试为我的按钮创建一个可绘制的波纹效果状态列表,但我不知道如何使用它,以便当我的按钮被按住时,波纹是一种颜色,然后如果用户完成通过释放按钮上的手指来按下按钮,波纹是另一种颜色。

现在,按下按钮时和松开按钮时我的波纹颜色是一样的。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="200" android:exitFadeDuration="200">
<item android:state_pressed="false">
<shape android:shape="oval">
<solid android:color="@android:color/transparent" />
</shape>
</item>

<item android:state_pressed="true">
<shape android:shape="oval">
<solid android:color="@color/md_teal_500" />
</shape>
</item>
</selector>

有什么方法可以使用状态列表可绘制 xml 来执行此操作,还是我必须使用触摸监听器手动执行此操作?

最佳答案

在 drawable 文件夹中创建以下 xml 文件。按钮规范.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="2dp" />
<solid
android:width="2px"
android:color="@color/green" />
</shape>

按钮选择.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="2dp" />
<solid
android:width="5px"
android:color="@color/red" />
</shape>

按钮点击效果.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/buttonselected" android:state_pressed="true" /><!-- pressed -->
<item android:drawable="@drawable/buttonnorml" /> <!-- default -->
</selector>

用作按钮的背景:

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/buttonclickeffect"
android:text="sample" />

关于android - 使用 xml 按下和释放之间的不同背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com