问题描述
我是Android中使用VectorDrawables的新手,需要一些帮助,因为我有一种尚不了解的行为。
我有两个矢量资产,用于绘制一个简单的图标(菱形)。它们几乎是相同的,只是它们的fillColor不同:一个是黑色,另一个是白色。 在我的代码中,我尝试在一个特殊位置绘制第一个菱形(黑色),然后在相同位置绘制另一个菱形(白色)。 我的假设是白色菱形完全覆盖了黑色菱形,但是我想知道为什么在菱形后面仍然可以看到一个小的“黑色边框”。
有人可以告诉我这种行为的原因吗?
先谢谢了。 鲍里斯
private void drawVector(Canvas canvas,int resId,int x,int y,int width,int height){
canvas.save();
canvas.translate(x,y);
VectorDrawableCompat vectorDrawable = VectorDrawableCompat.create(getContext().getResources(),resId,null);
vectorDrawable.setBounds(0,width,height);
vectorDrawable.draw(canvas);
canvas.restore();
}
第一个颜色为黑色的xml:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="200"
android:viewportHeight="200"
>
<path
android:pathData="M0,100 L100,0 200,100 100,200Z"
android:fillColor="#000000"/>
</vector>
具有白色的第二个xml:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="200dp"
android:height="200dp"
android:viewportWidth="200"
android:viewportHeight="200"
>
<path
android:pathData="M0,200Z"
android:fillColor="#FFFFFF"/>
</vector>
打印两个可绘制在同一位置的矢量:
drawVector(canvas,R.drawable.ic_raute1,x,y,200,200)
drawVector(canvas,R.drawable.ic_raute2,200)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)