【问题标题】:Overlay drawable with color on state在状态上使用颜色覆盖可绘制
【发布时间】:2023-04-09 17:01:01
【问题描述】:

我有以下LinearLayout

<LinearLayout
    android:id="@+id/like_button"
    android:clickable="true"
    android:layout_width="wrap_content"
    android:layout_height="36dp"
    android:layout_marginRight="15dp"
    android:gravity="center">

    <ImageView
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:layout_marginRight="15dp"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/ic_like"
        />

    <TextView
        android:id="@+id/num_likes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="14sp"
        />

</LinearLayout>

ic_like drawable 只是一个灰色的竖起大拇指图标。有没有办法在特定状态下更改图标的颜色,而无需提供不同颜色的相同图标 PNG,而是提供要更改为图标的十六进制颜色值?

例如,我如何创建一个状态列表,如果单击图标,图标的颜色会变为红色?

【问题讨论】:

  • Drawable#setColorFilter
  • 我将如何创建不同的状态(因为据我所知,它们通常设置在单独的 XML 布局中)?
  • 我认为 Fontastica 可以帮助你github.com/Tawreh/fontastica
  • 只要你想改变颜色就打电话setColorFilter

标签: android android-layout android-xml


【解决方案1】:

不,没有办法使用 png 可绘制资源执行此操作,但您可以创建不同的 .png 图标,然后在您的代码中使用它

yourImageView.setImageResources(..your icon..);

【讨论】:

    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多