1. 程式人生 > >SVG在低版本ImageView中的相容

SVG在低版本ImageView中的相容

最近寫了一個svg動畫,顯示在<ImageView>中,svg是5.0以上新引入的特性,在低版本中需要做好相容,否則執行在低版本上程式會直接crash。 
網上找了一下,教程還是挺多的。主要是以下三步:

使用較新版本的v7相容庫23.2.0
在build里加一行程式碼
在xml中使用app:srcCompat代替android:src

但是發現雖然能跑起來,但svg直接沒有顯示了,看不到。 
在谷歌官網看了一下相容庫的歷史更新資訊,發現了下面的更新說明: 

紅框中的資訊讓我眼前一亮,感覺有戲了,在onCreate()中加入上述相應程式碼,發現還是沒用……看了一下紅框中的原始碼,有了意外發現, 果斷用AppCompatImageView代替了`ImageView,bingo! 
而且在5.0上的執行效果也比之前好了,原先靜態時不顯示的兩條線也能看見了,簡直6666666! 
最後總結這次成功相容的步驟 (注意gradle版本要在2.0以上)

1.引入新的相容庫 compile 'com.android.support:appcompat-v7:23.2.0'或者比這還新的
2.build.gradle 中加入以下一行程式碼
defaultConfig {
        vectorDrawables.useSupportLibrary = true
    }

3. 在xml中使用AppCompatImageView代替ImageView 
4. 在AppCompatImageView中使用app:srcCompat代替android:src