当按钮本身在Android Studio中被按住时,如何更改按钮图标的颜色?
当按住按钮时,我在使按钮变暗时遇到了问题,经过一些帮助,它起作用了。但这只是按钮的背景,我想如果里面的图标也变暗会更好看。下面是一个例子:
Not held
Held
如您所见,按钮变深了,但里面的图标没有变深。
这是ImageButton的代码,它的src
表示已经来自Android Studio的图片:
<ImageButton
android:id="@+id/call_button"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginStart="248dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:background="@drawable/my_button"
android:contentDescription="@string/call"
android:minWidth="48dp"
android:src="@android:drawable/stat_sys_phone_call"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@id/iv_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.466" />
和只更改背景的";@Drawable/My_Button";的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/dark_blue"/>
<item android:state_focused="true" android:drawable="@color/dark_blue"/>
<item android:drawable="@color/blue"/>
</selector>
是对图标所做的更改,因为从技术上讲,按钮是将被保持的按钮,而不是图标,这意味着在这样的两个文件之间可能会有连接,其中如果一个被保持,另一个也是(?)。
如果有一个更简单的解决方案,如应用滤镜来更改整个事物的颜色,那么它将变得容易得多。
解决方案
将此添加到按钮的属性中,它有助于在单击项目或布局时显示覆盖背景色。
android:background="?android:attr/selectableItemBackground"
相关文章