LoginSignup
2
1

More than 5 years have passed since last update.

[Android]ImageViewでsvg画像を表示させるときの注意点

Posted at

はじめに

ImageViewでsvg画像を表示させるときの注意点を書いていきます。
メモ書きなので参考程度に参照してください。

注意点とは?

ImageViewを用いてsvgを表示させたときです。
Android5系でアプリを起動したときに落ちて、Android7系では正常に起動しました。

プレビュー画面

表示させようとしたsvgは下記の画像(Android studioのプレビュー画面)の時計とマップのアイコンです。
プレビュー.png

開発環境

端末名 OS
Huawei nove lite OS7
Asus Zenfone2 OS5

エラーコード

ログには以下のようにImageViewがerrorの原因だよと教えてくれています。
ログを追っていくとxmlを読み込むところでエラーになっていました。
さらにxmlのImageViewをコメントアウトすると両端末で表示してました。

error.log
android.view.InflateException: Binary XML file line #68: Error inflating class ImageView
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:763)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at keiba.japan.forest.net.japankeiba.activity.ui.adapter.SampleRecyclerAdapter.onCreateViewHolder(SampleRecyclerAdapter.java:60) 
    at keiba.japan.forest.net.japankeiba.activity.ui.adapter.SampleRecyclerAdapter.onCreateViewHolder(SampleRecyclerAdapter.java:22)
    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6367)
main.xml
    <ImageView
        android:src="@drawable/ic_map_black_24px" // svg画像
        android:layout_width="12dp"
        android:layout_height="12dp" />

改修方法

ライブラリを使って修正してください。
僕の場合はGoogleのSupport Libraryを使ってsvgを表示させました。

main.xml
     <android.support.v7.widget.AppCompatImageView
        app:srcCompat="@drawable/ic_schedule_black_24px"
        android:layout_width="12dp"
        android:layout_height="12dp" />

所感

svgが表示しない原因を調査していたときに
開発するときは「Support Library」を使ってコードの統一をした方が保守性など考えるいいかも

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1