我正在尝试创建一个喜欢的图标,如下图所示。
在创建它时,我需要内部路径(蓝色区域)在结果中是透明的。但是在给出透明颜色的同时,它显示了在外部路径中填充的颜色。完整的橙色形状。我怎样才能用透明的内部路径制作矢量绘图
我的矢量drawable是
// Kotlin
private fun setInput(vg: ViewGroup) {
(0..vg.childCount).map { vg.getChildAt(it) }.forEach {
when (it) {
is ViewGroup -> setInput(it) // recurse
is EditText -> it.inputType = InputType.TYPE_CLASS_NUMBER
}
}
}
答案 0 :(得分:2)
你有两种方法: 1)创建另一个矢量drawable,它只绘制外线,而不是重叠两个心 要么 2)去除橙色心脏并在蓝色心脏上添加橙色中风。只需复制下面的代码并尝试即可。请注意:一半的笔触宽度将进入图像内部,一半将移出外部,因此您的图像会有所不同(笔画将更接近图像的中心)
#include <iostream>
template<typename A,typename B>
struct IsSame{
enum{
value = 0};
};
template<typename A>
struct IsSame<A,A>{
enum{
value = 1
};
};
typedef int (SumType)(int,int)const;
class X{
public:
SumType sum;
};
int X::sum(int a,int b)const{
return a+b;
}
int main()
{
std::cout << IsSame< int (const std::string&,int,int)const,
decltype( &X::sum)>::value;
}
答案 1 :(得分:0)
请像这样使用StrokeColor和strokeWidth
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="72dp"
android:height="66dp"
android:viewportHeight="66"
android:viewportWidth="72">
<path
android:fillColor="@android:color/transparent"
android:pathData="M 0.00 0.00 L 72.00 0.00 L 72.00 66.00 L 0.00 66.00 L 0.00 0.00 Z" />
<path
android:fillColor="#000000000"
android:pathData="M 19.98 7.14 C 25.68 7.39 30.87 12.07 36.10 12.99 C 41.30 12.15 46.97 7.14 52.84
7.35 C 58.72 7.85 63.41 12.52 64.67 18.17 C 65.71 23.40 65.21 29.32 63.25 34.30
C 59.83 42.88 52.20 49.81 44.38 54.43 C 40.52 56.53 36.81 58.58 32.37 56.70 C
24.56 53.51 17.02 47.75 12.20 40.77 C 7.31 33.87 5.58 24.79 7.64 16.59 C 9.15
11.09 14.21 6.98 19.98 7.14 Z"
android:strokeColor="#F7592B"
android:strokeWidth="5"/>