2016-06-29 3 views
2

私のAndroidアプリケーションで、ImageViewのsrcとしてappSrc属性を使用してSVGを使用していました(SDK < 21)。 しかし、私はTextView Compound Drawables(drawableXXX属性)でそれらを使用しようとしましたが、KitKat(app:srcCompatの代わりにandroid:srcを使用した時と同じエラーです)を使ってデバイスを使用すると、 android.view.InflateException:によって引き起こさSDKでCompoundDrawableでSVGを使用<

バイナリXMLファイルのライン#261:クラス

を膨張させるエラーは、化合物ドローアブルでそれらを使用する方法を知っている人はいますか?

答えて

2

は今のようあなたはそれを行うことが、プログラムVectorDrawableCompat.create(Resources, int, Theme)を使用してblog post

その機能が唯一のAndroid開発者にこの上app:srcCompat以上に限定され、XML属性からVectorDrawableを追加して、それを追加することはできません
developer.android.com/reference/android/support/graphics/drawable/VectorDrawableCompat.html developer.android.com/reference/an:TextView#setCompoundDrawables

参照を使用してのTextViewに対する化合物の描画可能droid/widget/TextView.html

+1

偉大な、それは私が探していたものです。私の場合は、 'setCompoundDrawables'の代わりに' setCompoundDrawablesWithIntrinsicBounds'を使用しなければなりませんでした。なぜなら、これはSVGを表示しなかったからです。 ご協力いただきありがとうございます。本当に便利でした! – kikettas

+0

'setCompoundDrawablesWithIntrinsicBounds'を使っても私のために働きました。 –

0

私は同じ問題を持っていたし、私は2つだけのオプションが見つかりました:

1)プログラムで、あなたの描画可能に設定したり、カスタムビュー

2を作成する)あなたのbuild.gradleから「真vectorDrawables.useSupportLibrary =」を削除

これは、追加のAPKサイズの費用で同じコードを維持することができ、APIに21+のデバイスをお使いのベクターを使用しながら、Androidのメーカーは、API 21未満minSdkVersionが持つアプリをコンパイル時にPNG画像を生成するようになります。

+0

私がSachkhamに語ったように、最初のオプションは私が必要としたものです。あなたの答えをありがとう! – kikettas

関連する問題