矢量可绘制图标在android <6中崩溃

时间:2018-09-25 06:17:31

标签: android

我在android studio中使用new> vector资产,并将此website转换为SVGsvector Drawable

但是在android中<6个图标崩溃了

请查看屏幕截图

in android 7 in android 5

我的矢量xml:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="150dp"
    android:height="150dp"
    android:viewportWidth="150"
    android:viewportHeight="150">
  <path
      android:pathData="M58.38,72.09A31.88,31.88 0,1 0,26.45 40.16,31.93 31.93,0 0,0 58.38,72.09ZM58.38,15.68A24.48,24.48 0,1 1,33.9 40.16,24.55 24.55,0 0,1 58.38,15.68Z"
      android:fillColor="#babbba"
      android:fillType="nonZero"/>
  <path
      android:pathData="M5.92,126.4H110.84a3.56,3.56 0,0 0,3.42 -3.72,44.34 44.34,0 0,0 -8.86,-26.19c-5.32,-7.18 -12.86,-12.91 -21.56,-15.22a32.26,32.26 0,0 0,-8.25 -1.09H38.52A30.78,30.78 0,0 0,25.68 83,38.21 38.21,0 0,0 8.92,98.69a47.84,47.84 0,0 0,-6.42 24,3.56 3.56,0 0,0 3.42,3.72ZM38.52,87.62H75.59a25.28,25.28 0,0 1,4.47 0.4c9.76,1.76 18.1,9 22.82,17.48a35.56,35.56 0,0 1,4.26 12.82l0.08,0.63H9.55l0.08,-0.63a41,41 0,0 1,6.17 -17.1A30.63,30.63 0,0 1,28.58 89.78,24 24,0 0,1 38.52,87.62Z"
      android:fillColor="#babbba"
      android:fillType="nonZero"/>
  <path
      android:pathData="M110.91,141.67a36.53,36.53 0,1 0,-36.59 -36.59,36.59 36.59,0 0,0 36.59,36.59ZM110.91,77.03a28.05,28.05 0,1 1,-28.05 28.06A28.13,28.13 0,0 1,110.91 77Z"
      android:fillColor="#babbba"
      android:fillType="nonZero"/>
  <path
      android:pathData="M110.91,135.41a30.27,30.27 0,1 0,-30.27 -30.27A30.33,30.33 0,0 0,110.91 135.41Z"
      android:fillColor="#f6f8f9"
      android:fillType="nonZero"/>
  <path
      android:pathData="M107.34,80.15l0,21.42l-21.42,0l0,7.14l21.42,0l0,21.42l7.14,0l0,-21.42l21.42,0l0,-7.14l-21.42,0l0,-21.42l-7.14,0z"
      android:fillColor="#babbba"
      android:fillType="nonZero"/>
</vector>

3 个答案:

答案 0 :(得分:0)

ImageView中用于矢量:

app:srcCompat 

而不是:

对于非矢量

android:src

答案 1 :(得分:0)

将使用矢量的ImageView更改为“ AppCompatImageView”

    <android.support.v7.widget.AppCompatImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
app:srcCompat ="@drawable/yourvectorimagename" />

还在您的应用程序中使用“ vectorDrawables.useSupportLibrary = true”

android {    .....

defaultConfig {
   ......
    vectorDrawables.useSupportLibrary = true
}

答案 2 :(得分:0)

您需要将vectorDrawables.useSupportLibrary = true添加到您的build.gradle文件中

// Gradle Plugin 2.0+  
 android {  
   defaultConfig {  
     vectorDrawables.useSupportLibrary = true  
    }  
 }  

app:srcCompat

是将矢量可绘制对象集成到您的应用程序中最简单的方法。矢量可绘制对象使您可以用XML中定义的单个矢量图形替换多个png资产。虽然以前只限于棒棒糖和更高的设备