gpt4 book ai didi

Android:如何以编程方式为可绘制的矢量设置描边颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:27:24 29 4
gpt4 key购买 nike

我遇到了 Android 中 VectorDrawable 的问题。我有一个矢量可绘制文件 (.xml),我想在位图上绘制它。我设法加载了这个文件并将其绘制在位图上。我可以改变它的填充颜色,但问题是我不能改变它的笔触和颜色。

任何帮助将不胜感激!!!

谢谢!

这是可绘制文件:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="312dp"
android:height="312dp"
android:viewportWidth="312.7"
android:viewportHeight="312.699">
<path
android:pathData="M306.35,266.34c0,22.09 -17.91,40.01 -40,40.01L46.35,306.35c-22.09,0 -40,-17.92 -40,-40.01v-219.99c0,-22.11 17.92,-40 40,-40h220c22.09,0 40,17.9 40,40L306.35,266.34z"
android:strokeWidth="5"
android:fillColor="@color/transparent"
android:strokeColor="#231F20"/></vector>

这是我加载形状并用蓝色填充形状的方式:

Drawable drawable = getResources().getDrawable(R.drawable.graph_rounded_rectangle);
drawable.setBounds(0, 0, width, height);
drawable.setColorFilter(new PorterDuffColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY));
drawable.draw(canvas);

最佳答案

Chris Banes 所说在 his blog ,您可以使用以下代码使用支持库为您的可绘制对象着色:

Drawable drawable = ContextCompat.getDrawable(mContext, R.drawable.ic_asset);

// Wrap the drawable so that future tinting calls work
// on pre-v21 devices. Always use the returned drawable.
drawable = DrawableCompat.wrap(drawable);

// We can now set a tint
DrawableCompat.setTint(drawable, Color.RED);
// ...or a tint list
DrawableCompat.setTintList(drawable, myColorStateList);
// ...and a different tint mode
DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_OVER);

关于Android:如何以编程方式为可绘制的矢量设置描边颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34412742/

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