首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AnimatedVectorDrawable抛出UnsupportedOperationException

AnimatedVectorDrawable抛出UnsupportedOperationException
EN

Stack Overflow用户
提问于 2019-11-19 21:48:08
回答 1查看 82关注 0票数 0

如果有人点击,我想绘制一个可绘制的动画。“开始绘图”是指向底部的箭头。单击后,它将更改为指向顶部的箭头。

我的xml文件

anim_down_to_top.xml

代码语言:javascript
运行
复制
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
        android:duration="1000"
        android:propertyName="downToUp"
        android:valueFrom="M7.41,7.84L12,12.42l4.59,-4.58L18,9.25l-6,6 -6,-6z"
        android:valueTo="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z"
        android:valueType="pathType"/>

animated_vector.xml

代码语言:javascript
运行
复制
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" 
    android:drawable="@drawable/ic_keyboard_arrow_down_black_24dp">
<target
        android:animation="@animator/anim_down_to_up"
        android:name="down"/>
</animated-vector>

ic_keyboard_arrow_down_black_24dp.xml

代码语言:javascript
运行
复制
<vector android:height="24dp" 
    android:tint="#05164D"
    android:viewportHeight="24.0" 
    android:viewportWidth="24.0"
    android:width="24dp" 
    xmlns:android="http://schemas.android.com/apk/res/android">
<path android:name="down" 
        android:fillColor="#FF000000" 
        android:pathData="M7.41,7.84L12,12.42l4.59,-4.58L18,9.25l-6,6 -6,-6z"/>
</vector>

和布局xml

代码语言:javascript
运行
复制
<androidx.appcompat.widget.AppCompatImageButton
                        android:id="@+id/expandDepButton"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:src="@drawable/animated_vector"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintTop_toTopOf="parent" />

要启动动画,代码如下所示

代码语言:javascript
运行
复制
AppCompatImageButton expandDepField = view.findViewById(R.id.expandDepButton);

expandDepField.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            AppCompatImageButton btn = (AppCompatImageButton) v;
            AnimatedVectorDrawable anim = (AnimatedVectorDrawable) btn.getDrawable();

            anim.start();

        }
    });

但我收到以下例外

代码语言:javascript
运行
复制
java.lang.UnsupportedOperationException: Unsupported type: class android.util.PathParser$PathData. Only float, int or PathData value is supported for Paths.

请帮帮我,我做错什么了?

编辑:问题解决了,,而我解决了问题。我错过了将anim_down_to_top.xml中的属性名设置为"pathData“,如下所示

代码语言:javascript
运行
复制
android:propertyName="pathData"
EN

回答 1

Stack Overflow用户

发布于 2019-11-20 06:58:46

用这个:

代码语言:javascript
运行
复制
app:srcCompat="@drawable/animated_vector"

而不是:

代码语言:javascript
运行
复制
android:src="@drawable/animated_vector"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58943324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档