如何使ProgressBar的indeterminatedDrawable Vector兼容

时间:2018-10-18 23:13:29

标签: android svg android-drawable android-progressbar

我有一个由矢量组成的动画可绘制对象,以及一种将该可绘制对象设置为indeterminatedDrawable属性的样式。 API> = 21时一切正常,但是在任何Pre-Lollipop API上崩溃。到目前为止,我还没有找到解决方案。我还将在我的活动中启用setCompatVectorFromResources,并在应用的gradle中启用vectorDrawables.useSupportLibrary。

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
                android:oneshot="false">

    <item
        android:drawable="@drawable/spinner_00000"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00001"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00002"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00003"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00004"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00005"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00006"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00007"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00008"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00009"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00010"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00011"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00012"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00013"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00014"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00015"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00016"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00017"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00018"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00019"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00020"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00021"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00022"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00023"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00024"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00025"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00026"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00027"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00028"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00029"
        android:duration="100" />

    <item
        android:drawable="@drawable/spinner_00030"
        android:duration="100" />

</animation-list>

样式:

<style name="ProgressBar" parent="Widget.AppCompat.ProgressBar">
        <item name="android:layout_width">40dp</item>
        <item name="android:layout_height">40dp</item>
        <item name="android:layout_centerInParent">true</item>
        <item name="android:indeterminateDrawable">@drawable/anim_loading_claro</item>
    </style>

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#FFFFFF">

    <ImageView
        android:id="@+id/img_ideiasmusik"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:scaleType="centerCrop"
        android:src="@drawable/splash_phone" />

    <RelativeLayout
        android:id="@+id/cm_main_loading"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#55000000"
        android:visibility="gone">

        <ProgressBar style="@style/ProgressBar" />

    </RelativeLayout>

</RelativeLayout>

我遇到的崩溃:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.amco.claromusica.beta/com.telcel.imk.MainActivity}: android.view.InflateException: Binary XML file line #22: Error inflating class android.widget.ProgressBar
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
        at android.app.ActivityThread.access$600(ActivityThread.java:130)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:4745)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
        at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.view.InflateException: Binary XML file line #22: Error inflating class android.widget.ProgressBar
        at android.view.LayoutInflater.createView(LayoutInflater.java:613)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
        at com.telcel.imk.activities.MainActivity.onCreate(MainActivity.java:47)
        at android.app.Activity.performCreate(Activity.java:5008)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.constructNative(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
        at android.view.LayoutInflater.createView(LayoutInflater.java:587)
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at com.telcel.imk.activities.MainActivity.onCreate(MainActivity.java:47) 
        at android.app.Activity.performCreate(Activity.java:5008) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/anim_loading_claro.xml from drawable resource ID #0x7f020068
        at android.content.res.Resources.loadDrawable(Resources.java:1923)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
        at android.widget.ProgressBar.<init>(ProgressBar.java:294)
        at android.widget.ProgressBar.<init>(ProgressBar.java:246)
        at android.widget.ProgressBar.<init>(ProgressBar.java:242)
        at java.lang.reflect.Constructor.constructNative(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at com.telcel.imk.activities.MainActivity.onCreate(MainActivity.java:47) 
        at android.app.Activity.performCreate(Activity.java:5008) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: android.content.res.Resources$NotFoundException: File res/drawable/spinner_00000.xml from drawable resource ID #0x7f0204f7
        at android.content.res.Resources.loadDrawable(Resources.java:1923)
        at android.content.res.Resources.getDrawable(Resources.java:659)
        at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282)
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881)
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:818)
        at android.content.res.Resources.loadDrawable(Resources.java:1920)
        at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:294) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:246) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:242) 
        at java.lang.reflect.Constructor.constructNative(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at com.telcel.imk.activities.MainActivity.onCreate(MainActivity.java:47) 
        at android.app.Activity.performCreate(Activity.java:5008) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 
     Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #1: invalid drawable tag vector
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:877)
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:818)
        at android.content.res.Resources.loadDrawable(Resources.java:1920)
        at android.content.res.Resources.getDrawable(Resources.java:659) 
        at android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282) 
        at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881) 
        at android.graphics.drawable.Drawable.createFromXml(Drawable.java:818) 
        at android.content.res.Resources.loadDrawable(Resources.java:1920) 
        at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:294) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:246) 
        at android.widget.ProgressBar.<init>(ProgressBar.java:242) 
        at java.lang.reflect.Constructor.constructNative(Native Method) 
        at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
        at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
        at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
        at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
        at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
        at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
        at com.telcel.imk.activities.MainActivity.onCreate(MainActivity.java:47) 
        at android.app.Activity.performCreate(Activity.java:5008) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
        at android.app.ActivityThread.access$600(ActivityThread.java:130) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:137) 
        at android.app.ActivityThread.main(ActivityThread.java:4745) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:511) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
        at dalvik.system.NativeStart.main(Native Method) 

0 个答案:

没有答案