gpt4 book ai didi

android - 单一矢量资源多种色调

转载 作者:行者123 更新时间:2023-11-30 00:52:17 25 4
gpt4 key购买 nike

我想用矢量版本替换项目中的所有 .PNG 资源(图标)。为了尽可能高效,我想避免由于不同状态(例如同一图标的“Activity ”和“非 Activity ”版本)而导致的图像重复。

以前,我通过为每个版本使用单独的 PNG 文件来做到这一点:一个不透明的“Activity ”文件和稍微透明的“非 Activity ”文件。

所以问题是,是否可以创建一些引用单个矢量(最好)图像但对其应用不同颜色/色调的 XML?或者至少不同的 alpha 值就足够了。

附言如果重要的话,我的 minSDK 版本是 19。

UPDATE_01:我想我需要更详细地解释一下。矢量资源按预期工作(所有准备工作都是为了兼容库根据需要绘制矢量)。

主要问题是在单独的 XML 中使用一个矢量图标和不同颜色/alpha 的多个引用。并在需要时使用这些 XML(在工具栏、按钮、状态等上)。

UPDATE_02:也许和例子会更好。

我有一个“主页”图标的矢量可绘制对象,它看起来像这样:

<vector
android:height="24dp"
android:viewportHeight="792.0"
android:viewportWidth="792.0"
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<path
android:fillColor="#FF000000"
android:pathData="..."/>
</vector>

我想要的是使用相同的 XML 矢量可绘制对象,但对“Activity ”和“非 Activity ”状态使用不同的色调,例如,在页面适配器的选项卡中。

我现在要做的是复制这个 XML 并更改它的“android:fillColor”值。

在所有使用它的地方改变它(在代码中)是一种方法,但从我的角度来看不是很好。也许还有另一种方法?像这样(伪):

<image-reference
android:srcDrawable="@drawable/home_icon"
android:tint="@color/activeHomeIcon" />

然后在任何地方都使用这个“home_icon_ref.xml”作为可绘制资源。

希望这一次能让我的问题更清楚。

最佳答案

不确定这是否正是您所需要的(这已经快 2 年了),但您可以使用 android:tintImageView 的 xml 中:

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:src="@drawable/vector_drawable"
android:tint="@android:color/black"
android:contentDescription="@string/description"
/>

我目前正在使用 minSdkVersion 21但根据 this,它似乎适用于早期版本.
您还可以使用 style<item name="android:tint">@android:color/black</item> .

关于android - 单一矢量资源多种色调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40806217/

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