我已经通过Android Studio生成了矢量资产(基于自己的svg文件)。

我的图像视图的布局代码:

<ImageView
        android:id="@+id/iv_drink"
        android:layout_width="21dp"
        android:layout_height="30dp"
        android:layout_marginStart="24dp"
        android:layout_marginBottom="4dp"
        android:scaleType="fitXY"
        app:srcCompat="@drawable/ic_smoothie_icon" />


问题是,此图像的小版本看起来“弯曲”或模糊。下面是增加尺寸的屏幕截图(因此您可以看到图像的咖喱边缘)。

android - 小型SVG imageview看起来模糊或“弯曲”-LMLPHP

我的compileSdkVersion是28,minSdkVersion是21。

我尝试使用以下方法解决此问题:


imageview:android:scaleType =“ fitXY”
imageview:app:srcCompat而不是app:src
build.gradle:vectorDrawables.useSupportLibrary = true
在资产xml中尝试了不同的大小


是什么导致此问题?

编辑:
这是svg的内容(图像基于freepik.com中的文件):

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="-318 422.4 85.6 122.6" style="enable-background:new -318 422.4 85.6 122.6;" xml:space="preserve">
<g>
    <path d="M-232.4,445l-6.1,100h-49.9l-6.1-100h20.7c-0.6-5.7-1-9.9-1.1-11.7c-0.3-4.8-1.6-6.1-2.1-6.5c-0.4-0.3-0.9-0.6-0.9-0.6
        l-0.3-0.2H-318v-3.1c0,0,14.6-0.5,26.9-0.5c8.4,0,15.8,0.2,16.8,1c2.3,1.8,3.7,4.8,4,9.8c0.1,1.8,0.5,6.1,1.1,11.8L-232.4,445
        L-232.4,445z"/>
</g>
</svg>


向量xml:

<vector android:height="12.3dp" android:viewportHeight="123"
    android:viewportWidth="86" android:width="8.6dp" xmlns:android="http://schemas.android.com/apk/res/android">
    <path android:fillColor="#000000" android:pathData="M85.6,22.6l-6.1,100h-49.9l-6.1,-100h20.7c-0.6,-5.7 -1,-9.9 -1.1,-11.7c-0.3,-4.8 -1.6,-6.1 -2.1,-6.5c-0.4,-0.3 -0.9,-0.6 -0.9,-0.6l-0.3,-0.2L0,3.6v-3.1c0,0 14.6,-0.5 26.9,-0.5c8.4,0 15.8,0.2 16.8,1c2.3,1.8 3.7,4.8 4,9.8c0.1,1.8 0.5,6.1 1.1,11.8L85.6,22.6L85.6,22.6z"/>
</vector>

最佳答案

在这里,我使用了更加比例友好的尺寸和角度来制作矢量,并记住我们不能绘制半像素,这会涉及到抗锯齿,但是我们可以通过调整形状来缓解这种情况。在处理矢量和动画矢量时,您可以使用shape-shifter来编辑您的路径并将其设置为android友好或动画化的路径。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">

    <path
        android:fillColor="#FF000000"
        android:pathData="M9,21L7,6L12,6C12,6,12.013,4.071,12,3.5C,11.987,2.929,12.081,3,11.5,3,L4,3L4,2C4,2,11.505,2.006,12,2,C12.26,2.015,12.506,2.125,12.691,2.309,C12.875,2.494,12.985,2.74,13,3L13,6L18,6L16,21Z"/>
</vector>

07-27 19:39