2015-09-06 83 views
3

VectorDrawableCompat终于进入支持库在SDK 23中的方式。但它似乎并没有工作,或者我失去了一些东西。InflateException:错误膨胀类ImageView for VectorDrawableCompat

drawable/mypic.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
android:height="64dp" 
android:width="64dp" 
android:viewportHeight="600" 
android:viewportWidth="600" > 
<group 
    android:name="rotationGroup" 
    android:pivotX="300.0" 
    android:pivotY="300.0" 
    android:rotation="45.0" > 
    <path 
     android:name="v" 
     android:fillColor="#000000" 
     android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> 
</group> 
</vector> 

fragment_bla.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:src="@drawable/mypic" 
    android:scaleType="centerCrop" /> 

</FrameLayout> 

这个代码在棒棒糖,但不是在奇巧。我错过了什么?


例外:

09-06 14:26:53.637 31820-31820/com.bla E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.bla, PID: 31560 
android.view.InflateException: Binary XML file line #7: Error inflating class android.widget.ImageView 
     at android.view.LayoutInflater.createView(LayoutInflater.java:623) 
     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:672) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:495) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:400) 
     at com.hohero.fragment.Intro1Fragment.onCreateView(Intro1Fragment.java:14) 
     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 
+0

有一个'造成by'无论你已经张贴在logcat的后线? – Bhargav

+0

你确定它涉及到支持库吗?我无法在支持库 –

+0

@Bhargav nope的更改日志中找到它,其余仅仅是低级别的Android东西 – wiradikusuma

回答

2

嗯,我读的代码,并得到它的那种工作。有几个需要注意的地方:

  1. XML文件必须是原料目录,而不是绘制
  2. XML必须是非常简单的。它看起来像它支持一个单一的<路径>元素

对我来说,它总是有一个红色的背景和缩放似乎没有正常工作。我刚刚使用Studio Collection中的矢量素材操作 - >(锁定)。

final Drawable drawable = VectorDrawableCompat.createFromResource(getResources(), R.raw.ic_lock_outline_24dp); 
    imageView.setImageDrawable(drawable); 

这是一个很好的开始和一些有趣的玩法!

链接到谷歌源未知的分支: https://android.googlesource.com/platform/frameworks/support/+/d573775216408a88e796cd74abf8ab018488c2a3/v7/vectordrawable/src/android/support/v7/graphics/drawable

相关问题