【发布时间】:2015-06-04 14:23:11
【问题描述】:
我正在尝试在自定义视图的 onTouchEvent() 中启动 TransitionDrawable startTransition() 方法。它只显示 xml 文件中的第一个图像。然而,它适用于ImageView 的setDrawable() 方法。将这两者结合起来是可能的,或者是否有其他替代方法可以在自定义视图中显示类似的过渡。
transition.xml:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_icon_lock"/> // only this image is shown
<item android:drawable="@drawable/ic_icon_unlock"/>
</transition>
初始化器:
mLockTransitionalDrawable = (TransitionDrawable)
ResourcesCompat.getDrawable(mResources, R.drawable.transition, mContext.getTheme());
onDraw() 自定义视图:
mLockTransitionalDrawable.setBounds(mLockRect);
mLockTransitionalDrawable.draw(canvas);
当 Action down 在包含可绘制对象的矩形(mLockRect)内发生时触发:
mLockTransitionalDrawable.startTransition(1000); // does not change drawable layer invalidate() requestLayout() is not working either
由于时间限制,我正在寻找一个简单的解决方案。
【问题讨论】:
-
你需要设置回调
-
Drawable.Callback 为什么我没有想到我会尝试并尝试回答我自己的问题谢谢@pskink
-
我也认为
TransitionDrawable只适用于两个Drawables -
@pskink 得到它的工作感谢您的精彩评论
标签: android android-custom-view android-drawable