Android - 更改 ImageButton 上的发送图标颜色

Android - change send icon's color on ImageButton

如何更改此 ImageButton 上发送图标的默认颜色?

<ImageButton
    android:id="@+id/ImageButton1"
    android:layout_width="0dp"
    android:paddingTop="5dip"
    android:layout_weight="1"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:background="@null"
    android:gravity="right"
    android:scaleType="center"
    android:src="@android:drawable/ic_menu_send" />

我想用灰色代替当前的白色。

你可以把你的costomize图像放在你的drawable中,然后你可以将它用作图像src

添加android:tint属性来设置图标颜色。

<ImageButton
    android:id="@+id/ImageButton1"
    android:layout_width="0dp"
    android:paddingTop="5dip"
    android:layout_weight="1"
    android:tint="@color/background_red"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:background="@null"
    android:gravity="right"
    android:scaleType="center"
    android:src="@android:drawable/ic_menu_send" />

将此图像放入您的可绘制文件夹中,然后

将其作为图像保存在可绘制对象中

<ImageButton
        android:id="@+id/ImageButton1"
        android:layout_width="0dp"
        android:paddingTop="5dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:background="@null"
        android:gravity="right"
        android:scaleType="center"
        android:src="@android:drawable/img" />

下载图标放在可绘制文件夹中

<ImageButton
        android:id="@+id/ImageButton1"
        android:layout_width="0dp"
        android:paddingTop="5dip"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:background="@null"
        android:gravity="right"
        android:scaleType="center"
        android:src="@drawable/downloded_icon_send" />

您可以在图像视图上使用 colorFilter 并可以赋予任何颜色运行时间。

iv.setColorFilter(getResources().getColor(R.color.color_gray),
                PorterDuff.Mode.SRC_ATOP);

添加tint属性,你可以设置任何你想要的颜色。您还可以设置 android:tintMode 属性(说明颜色应如何应用)。

 <ImageButton
        android:id="@+id/ImageButton1"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:adjustViewBounds="true"
        android:background="@null"
        android:gravity="right"
        android:paddingTop="5dip"
        android:scaleType="center"
        android:tint="@color/colorAccent"
        android:src="@android:drawable/ic_menu_send" />

您可以使用以下代码以编程方式更改它:

Drawable drawableTint = DrawableCompat.wrap(getResources()
        .getDrawable(imageResID)).mutate();
DrawableCompat.setTint(drawableTint, 
        ContextCompat.getColor(getContext(), R.color.colorTint));

yourImageButton.setImageDrawable(drawableTint);