skw*_*ear 1 android android-animation objectanimator android-vectordrawable
我试图让AnimatedVectorDrawable同时淡出和翻译.我做了一个ObjectAnimator资源:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="translationX"
android:duration="@+string/animtime"
android:valueFrom="0"
android:valueTo="150"
android:valueType="floatType"/>
<objectAnimator
android:propertyName="alpha"
android:duration="@+string/animtime"
android:valueFrom="255"
android:valueTo="0"
android:valueType="intType"/>
Run Code Online (Sandbox Code Playgroud)
然后有针对性一个VectorDrawable用ObjectAnimation:
<target
android:name="disgust"
android:animation="@anim/fadetransout" />
Run Code Online (Sandbox Code Playgroud)
它VectorDrawable是资源文件<group>中的一个VectorDrawable.
但是当我开始动画时,什么都没发生.我究竟做错了什么?
我在堆栈跟踪中发现了这个:
Method setTranslationX() with type float not found on target class class android.graphics.drawable.VectorDrawable$VGroup
Method setAlpha() with type int not found on target class class android.graphics.drawable.VectorDrawable$VGroup
Run Code Online (Sandbox Code Playgroud)
它与此有关吗?
如果这是不可能的,还有另一种方法可以让我VectorDrawable淡化和翻译吗?
谢谢.
skw*_*ear 10
我发现了我做错了什么.我再看看这个并意识到问题所在.我没有说,并且认为重要的是disgustdrawable是a <group>并且<group>确实有一个x转换属性但它被调用translateX,所以这是我出错的第一件事.
第二件事是属性alpha是整个属性<vector>的"父" <group>.我真正想要的是改变a的alpha的东西<path>.这是通过使用属性完成的fillAlpha.fillAlpha是,从进了浮0来1.0透明且1不透明.0到255装置它消失在持续时间255次.
最后,这两个objectAnimators不能在同一个XML文件中,因为一个用于a <group>,一个用于a <path>.所以最终结果如下:
在一个名为translate_out.xml我现在的文件中,
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="translateX"
android:duration="@integer/animation_duration"
android:valueFrom="0"
android:valueTo="150" />
</set>
Run Code Online (Sandbox Code Playgroud)
在另一个名为fade_out.xmlI now的文件中,
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:propertyName="fillAlpha"
android:duration="@integer/animation_duration"
android:valueFrom="1"
android:valueTo="0" />
</set>
Run Code Online (Sandbox Code Playgroud)
最后,vectordrawable.xml我有,
<target
android:name="disgust_path"
android:animation="@anim/fade_out" />
<target
android:name="disgust"
android:animation="@anim/translate_out" />
Run Code Online (Sandbox Code Playgroud)
disgust_path现在在哪里我已经命名的路径始终在disgust组内.
我已将动画时间字符串移动到integers.xml并调用它animation_duration.
| 归档时间: |
|
| 查看次数: |
2665 次 |
| 最近记录: |