【问题标题】:Blurry svg image in AndroidAndroid中的模糊svg图像
【发布时间】:2017-01-20 21:19:18
【问题描述】:

我添加了来自 this 网站的用户 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>

【问题讨论】:

  • 颜色:试试android:fillColor="#ff0000"
  • @Rotwang 感谢您的回复。我试过了,但效果不佳。
  • 很奇怪。这是来自official docs 的示例
  • @Rotwang 我知道,很奇怪。可能是别的东西……我会从头开始重做。

标签: java android svg vector android-xml


【解决方案1】:

将此添加到应用程序 build.gradle 帮助我解决了模糊 svg 图像的问题:

android {
  defaultConfig {
    vectorDrawables.useSupportLibrary = true
  }
}

【讨论】:

  • 我正在使用 API 21,所以我的应用程序崩溃了,我会在找到一些空闲时间时尝试解决这个问题,并让您知道并希望接受您的回答 :) 谢谢。
  • 将我的 API 更改为 24,添加 app:srcCompat="@drawable/ic_icon_user" 而不是 android:background="@drawable/ic_icon_user" 并且它有效。谢谢
  • 为什么 useSupportLibrary 可以防止 SVG 模糊?
【解决方案2】:
  1. 在 Android Manifest.xml 中,为您的活动设置(当硬件加速为 true 时模糊不起作用)

    android:hardwareAccelerated="false"
    
  2. 您可以禁用硬件加速 在 VIEW 级别:

    myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

【讨论】:

    【解决方案3】:

    类似的问题也发生在我身上。我正在使用

    app:srcCompat="@drawable/your_image". 
    

    原来这是导致问题的原因。您需要将其更改为:

    android:src="@drawable/your_image".
    

    【讨论】: