Animated Vector Drawable无法与API 15一起使用

卡里姆·菲卡尼(Karim Fikani)

我一直在尝试在API级别为15的设备上运行Animated Vector Drawable。

以下是我的动画矢量“ animated_feedback.xml”:

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
                 android:drawable="@drawable/feedback">

    <target
    android:animation="@animator/background_circle_animator"
    android:name="BG_White_Circle"/>

</animated-vector>

可绘制的“ feedback.xml”包含以下内容:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="180dp"
        android:height="180dp"
        android:viewportWidth="180"
        android:viewportHeight="180">
    <group
        android:name="BG_White_Circle_Group">
        <path
            android:name="BG_White_Circle"
            android:fillColor="#fff"
            android:pathData="M 90 0 C 139.705627485 0 180 40.2943725152 180 90 C 180 139.705627485 139.705627485 180 90 180 C 40.2943725152 180 0 139.705627485 0 90 C 0 40.2943725152 40.2943725152 0 90 0 Z" />
        <path
            android:name="Ring"
            android:strokeColor="#0094c1"
            android:strokeWidth="5.00000003634922"
            android:strokeMiterLimit="10"
            android:pathData="M 90 9 C 134.735064736 9 171 45.2649352637 171 90 C 171 134.735064736 134.735064736 171 90 171 C 45.2649352637 171 9 134.735064736 9 90 C 9 45.2649352637 45.2649352637 9 90 9 Z" />
    </group>
</vector>

动画师“ background_circle_animator.xml”之一如下:

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:ordering="sequentially"
     android:fillAfter="true">

    <objectAnimator
        android:propertyName="fillAlpha"
        android:valueType="floatType"
        android:valueFrom="0f"
        android:valueTo="1f"
        android:duration="200"/>

    <objectAnimator
        android:duration="700"/>

    <objectAnimator
        android:propertyName="fillAlpha"
        android:valueType="floatType"
        android:valueFrom="1f"
        android:valueTo="0f"
        android:duration="200"/>

</set>

在我的activity_main.xml中,我具有应播放此动画的ImageView:

<ImageView
    android:id="@+id/feedback_ui"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="invisible"/>

最后,在我的MainActivity.java中,我有以下代码:

ImageView feedbackUI = (ImageView) findViewById(R.id.feedback_ui);
feedbackUI.setImageResource(R.drawable.animated_feedback);

Drawable animation = feedbackUI.getDrawable();
if (animation instanceof Animatable) {
    feedbackUI.setVisibility(View.VISIBLE);
    ((Animatable) animation).start();
}

以下是我的毕业证书:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "karim.com.testinganimation"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.4.0'
}

运行此代码时,您应该看到一个白色的圆圈,上面有一个蓝色的环,它应该淡入然后淡出。

我在API> 21设备上运行了这段代码,它运行得非常好。

当我在使用API​​ 15的设备上运行该动画时,动画一开始就会出现以下崩溃:

D/PropertyValuesHolder(19300): Can't find native method using JNI, use reflectionjava.lang.NoSuchMethodError: no method with name='set' signature='(F)V' in class Landroid/support/graphics/drawable/VectorDrawableCompat$VFullPath;
E/PropertyValuesHolder(19300): Couldn't find setter/getter for property null with value type float
E/PropertyValuesHolder(19300): Couldn't find no-arg method for property null: java.lang.NoSuchMethodException: get []
D/AndroidRuntime(19300): Shutting down VM
W/dalvikvm(19300): threadid=1: thread exiting with uncaught exception (group=0x40a9e1f8)
E/AndroidRuntime(19300): FATAL EXCEPTION: main
E/AndroidRuntime(19300): java.lang.NullPointerException
E/AndroidRuntime(19300):    at android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:513)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:392)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:544)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:934)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.start(ValueAnimator.java:957)
E/AndroidRuntime(19300):    at android.animation.ObjectAnimator.start(ObjectAnimator.java:370)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.startIfReady(AnimatorSet.java:705)
E/AndroidRuntime(19300):    at android.animation.AnimatorSet$DependencyListener.onAnimationEnd(AnimatorSet.java:659)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.endAnimation(ValueAnimator.java:1040)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator.access$900(ValueAnimator.java:49)
E/AndroidRuntime(19300):    at android.animation.ValueAnimator$AnimationHandler.handleMessage(ValueAnimator.java:675)
E/AndroidRuntime(19300):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19300):    at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(19300):    at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(19300):    at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
E/AndroidRuntime(19300):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
E/AndroidRuntime(19300):    at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(  164):   Force finishing activity karim.com.testinganimation/.MainActivity

如何解决此问题,因为在具有API级别15的设备上运行非常关键。

刘易斯·麦克吉里

我没有API 15设备或仿真器可以对此进行测试,但是在我看来,您对中间的objectAnimator不满意:

 <objectAnimator
    android:duration="700"/>

错误消息的某些部分,例如“找不到属性null的setter / getter”,表明它正在尝试设置动画制作器,但是由于没有有关动画制作器应进行动画制作的详细信息,因此崩溃了。

假设此objectAnimator的目的只是使动画矢量在淡出之前暂停,我建议尝试执行以下操作:

<objectAnimator
    android:propertyName="fillAlpha"
    android:valueType="floatType"
    android:valueFrom="1f"
    android:valueTo="1f"
    android:duration="700"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Animated Vector Drawable无法与API 15一起使用

来自分类Dev

<animated-vector>需要API级别21(当前最小值为15)

来自分类Dev

找不到参数的方法 compile() [com.android.support:animated-vector-drawable:27.0.2]

来自分类Dev

C ++如何扩展模板以与vector <T>一起使用

来自分类Dev

将std :: vector与智能指针一起使用

来自分类Dev

分配器如何与std :: vector一起使用?

来自分类Dev

将vector :: insert与可变参数一起使用

来自分类Dev

在支持库(23.4.0)的帮助下,Vector Drawable无法正确加载到Android API 19中

来自分类Dev

在支持库(23.4.0)的帮助下,Vector Drawable无法正确加载到Android API 19中

来自分类Dev

encodeURIComponent无法与Web API调用一起使用

来自分类Dev

Sqoop作业无法与Hadoop Credential API一起使用

来自分类Dev

Chrome存储API无法与内容脚本一起使用

来自分类Dev

FileOutputStream无法与API级别> = 22一起使用

来自分类Dev

DrawableTint无法与API 23上的AppCompatButton一起使用

来自分类Dev

无法使Autofac与Web API 2一起使用

来自分类Dev

为什么Pinterest API无法与$ .getJSON一起使用

来自分类Dev

CSS无法与DOMPDF一起使用

来自分类Dev

supportFragmentManager无法与Kotlin一起使用

来自分类Dev

CSS无法与bootstrap一起使用

来自分类Dev

无法使砖石与RequireJS一起使用

来自分类Dev

reduce()无法与lightcouch一起使用

来自分类Dev

无法使Postgres与节点一起使用

来自分类Dev

MediaButtonReceiver无法与MediaBrowserServiceCompat一起使用

来自分类Dev

CABasicAnimation无法与UIImageView一起使用

来自分类Dev

updateSearchResultsForSearchController无法与UIViewController一起使用

来自分类Dev

无法与receiveOnly一起使用别名

来自分类Dev

JavaScript无法与php一起使用

来自分类Dev

NSURLCache无法与NSURLSession一起使用

来自分类Dev

QDataWidgetMapper无法与QLabels一起使用

Related 相关文章

  1. 1

    Animated Vector Drawable无法与API 15一起使用

  2. 2

    <animated-vector>需要API级别21(当前最小值为15)

  3. 3

    找不到参数的方法 compile() [com.android.support:animated-vector-drawable:27.0.2]

  4. 4

    C ++如何扩展模板以与vector <T>一起使用

  5. 5

    将std :: vector与智能指针一起使用

  6. 6

    分配器如何与std :: vector一起使用?

  7. 7

    将vector :: insert与可变参数一起使用

  8. 8

    在支持库(23.4.0)的帮助下,Vector Drawable无法正确加载到Android API 19中

  9. 9

    在支持库(23.4.0)的帮助下,Vector Drawable无法正确加载到Android API 19中

  10. 10

    encodeURIComponent无法与Web API调用一起使用

  11. 11

    Sqoop作业无法与Hadoop Credential API一起使用

  12. 12

    Chrome存储API无法与内容脚本一起使用

  13. 13

    FileOutputStream无法与API级别> = 22一起使用

  14. 14

    DrawableTint无法与API 23上的AppCompatButton一起使用

  15. 15

    无法使Autofac与Web API 2一起使用

  16. 16

    为什么Pinterest API无法与$ .getJSON一起使用

  17. 17

    CSS无法与DOMPDF一起使用

  18. 18

    supportFragmentManager无法与Kotlin一起使用

  19. 19

    CSS无法与bootstrap一起使用

  20. 20

    无法使砖石与RequireJS一起使用

  21. 21

    reduce()无法与lightcouch一起使用

  22. 22

    无法使Postgres与节点一起使用

  23. 23

    MediaButtonReceiver无法与MediaBrowserServiceCompat一起使用

  24. 24

    CABasicAnimation无法与UIImageView一起使用

  25. 25

    updateSearchResultsForSearchController无法与UIViewController一起使用

  26. 26

    无法与receiveOnly一起使用别名

  27. 27

    JavaScript无法与php一起使用

  28. 28

    NSURLCache无法与NSURLSession一起使用

  29. 29

    QDataWidgetMapper无法与QLabels一起使用

热门标签

归档