我有以下矢量绘制:矢量绘制
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="25dp"
android:height="25dp"
android:viewportWidth="25"
android:viewportHeight="25">
<path
android:fillColor="#FFFFFF"
android:fillType="evenOdd"
android:strokeWidth="1"
android:pathData="M12.5,25 C19.4035594,25 25,19.4035594 25,12.5 C25,5.59644063 19.4035594,0 12.5,0
C5.59644063,0 0,5.59644063 0,12.5 C0,19.4035594 5.59644063,25 12.5,25 Z M12.5,24
C18.8512746,24 24,18.8512746 24,12.5 C24,6.14872538 18.8512746,1 12.5,1
C6.14872538,1 1,6.14872538 1,12.5 C1,18.8512746 6.14872538,24 12.5,24 Z M16,6
C17.6568542,6 19,7.34226429 19,8.99878564 L19,16.0012144 C19,17.6573979
17.6534829,19 16,19 C14.3431458,19 13,17.6577357 13,16.0012144 L13,8.99878564
C13,7.34260206 14.3465171,6 16,6 Z M14,16.0012144 C14,17.1052262 14.8952058,18
16,18 C17.1026267,18 18,17.1036857 18,16.0012144 L18,8.99878564 C18,7.89477378
17.1047942,7 16,7 C14.8973733,7 14,7.89631432 14,8.99878564 L14,16.0012144 Z
M8.33473905,12.5 C8.14415114,12.3451212 7.57820716,11.8273213
7.57820716,11.8273213 C6.80306599,11.0695455 6,10.0347728 6,9 C6,7 7,6 9,6 C11,6
12,7 12,9 C12,10.0347728 11.196934,11.0695455 10.4217928,11.8273213
C10.4217928,11.8273213 9.85584886,12.3451212 9.66526095,12.5
C9.85584886,12.6548788 10.4217928,13.1726787 10.4217928,13.1726787
C11.196934,13.9304545 12,14.9652272 12,16 C12,18 11,19 9,19 C7,19 6,18 6,16
C6,14.9652272 6.80306599,13.9304545 7.57820716,13.1726787 C7.57820716,13.1726787
8.14415114,12.6548788 8.33473905,12.5 Z M9.03460423,12 C10.1996214,11.0532638
11,9.74316 11,9 C11,7.55228475 10.4477153,7 9,7 C7.55228475,7 7,7.55228475 7,9
C7,9.74316 7.86958707,11.0532638 9.03460423,12 L8.96539577,13
C7.80037862,13.9467362 7,15.25684 7,16 C7,17.4477153 7.55228475,18 9,18
C10.4477153,18 11,17.4477153 11,16 C11,15.25684 10.1304129,13.9467362
8.96539577,13 L9.03460423,12 Z" />
</vector>
在Android Studio中预览选项卡它看起来像这样(这是需要什么):
但是当我以编程方式将其设置为ImageView作为其源时,代码为:
imageMenuItem.setImageResource(R.drawable.keno);
它看起来像这样:
XML代码为ImageView
很简单:
<ImageView
android:id="@+id/image_menu_item"
style="@style/UpperItemsImageLeftMenu"
app:srcCompat="@drawable/leftmenu_keno"
android:layout_width="@dimen/upper_item_image_dim_left_menu"
android:layout_height="@dimen/upper_item_image_dim_left_menu"
/>
深灰色的背景是,在其他地方设置。有谁知道我该如何解决这个问题?
根据我的经验,Vector Drawables不支持'evenOdd'填充规则,所以路径需要重新定向以正确显示https://developer.mozilla.org/en/docs/Web/SVG/Attribute/fill-rule – Duopixel
@Duopixel可以调出填充规则,尽管我会添加更多的细节。 VectorDrawable默认填充规则是“非零”;改变填充规则只是在API 24中引入的。所以,你应该坚持“非零”尝试配置你的矢量图形软件给你。一些链接: https://medium.com/@dineshbob10/the-mystery-of-the-disappearing-holes-a-gripping-tale-of-using-svg-in-android-442f6035a452#.hnq7fat30 https: //blog.stylingandroid.com/vectordrawable-fill-windings/ –
@Duopixel @Lewis,你是对的。我从xml中移除了'android:fillType =“evenOdd”',预览显示了实心圆。非常感谢你!太糟糕了,你没有回答,但评论它,因为我不能设置正确的答案。 –