Android中SVG图片模糊问题

7

我从这个网站添加了一个用户 SVG 图片。图片应该很清晰,但是当我将其作为默认用户图片在我的应用中使用时,它变得非常模糊。

<!-- Thumbnail Image -->
<com.android.volley.toolbox.NetworkImageView
   android:id="@+id/thumbnail"
   android:background="@drawable/ic_icon_user"
   android:layout_width="80dp"
   android:layout_height="80dp"
   android:layout_alignParentLeft="true"
   android:layout_marginRight="8dp" />

另外,我该如何在Android中编辑SVG图像的颜色?我尝试添加自定义颜色,但它没有起作用。

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportHeight="24"
    android:viewportWidth="24">
       <path
            android:fillColor="@color/ColorRed"
            android:pathData="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z" />
</vector>

1
对于颜色,请尝试使用android:fillColor="#ff0000" - Phantômaxx
@Rotwang,感谢您的回复。我尝试了,但效果不太好。 - Banana
奇怪。这是来自官方文档的一个示例。 - Phantômaxx
1
@Rotwang 我知道,很奇怪。可能是其他原因...我会尝试重新开始做。 - Banana
3个回答

9

将以下内容添加到应用的build.gradle中可以帮助解决模糊SVG图像的问题:

android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}

我正在使用API 21,因此我的应用程序崩溃了。我会在找到一些空闲时间时尝试解决这个问题,并让您知道并希望接受您的答案 :) 谢谢。 - Banana
1
将我的API更改为24,使用app:srcCompat="@drawable/ic_icon_user"替代android:background="@drawable/ic_icon_user",然后它就可以工作了。谢谢。 - Banana
1
为什么使用 useSupportLibrary 可以防止 SVG 模糊? - IgorGanapolsky

1
  1. In Android Manifest.xml, set for your activity (blur doesn't work when hardware acceleration is true)

    android:hardwareAccelerated="false"
    
  2. You can disable hardware acceleration on the VIEW level:

    myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

1
我遇到了类似的问题。我正在使用


app:srcCompat="@drawable/your_image". 

原来正是这个导致了问题。你需要将其更改为以下内容:
android:src="@drawable/your_image".

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接