我正在处理一个覆盖drawable的任务,该视图会动画一个复选标记的绘制,如下面的视频https://vid.me/MsQj
我没有这样做的首选方法,但它只是没有按照我想要的方式出现,我试过了:
我的问题是,有什么东西可以让我更轻松,或者我必须首先处理它并继续使用它
答案 0 :(得分:2)
您可以创建一个自定义View类,其中包含由ShapeDrawables定义的两条线,每条线对应一条线。将这两行的长度公开为类的属性,然后使用Property Animation为行的长度设置动画。
属性动画足够灵活,可以处理各种属性的相当复杂的时序和排序。在这种特殊情况下,您可能希望使用AnimatorSet对两行动画进行排序,以便在第一行完成后第二行开始。
答案 1 :(得分:2)
由于@SoundConception建议,我最终开发了一个自定义View
,并找到ObjectAnimator
中非常强大的Android
。本质上是我们设置第一行和第二行的宽度来制作复选标记,并使用动画师将这些属性的值从0更改为所需的值。
在属性的setter上,我们使View
无效以使用新值重新绘制它并稍加调整我做了一个很好的View,虽然它目前只适用于我的特定布局(即它需要一些更多关于偏移计算的工作)它能够绘制一个动画的复选标记,其中包含一些可自定义的内容。
准确地说,您可以设置线宽,颜色,长度和动画时间。触摸java文件,您可以更改插补器和所有其他内容。
希望代码虽然没有真正评论,但却可以作为尝试类似内容的人的基础。
例如,下面的代码会产生类似this video的内容,虽然不是因为我正在测试不透明度和更细的线条,但是你得到了我的漂移。
<coop.devtopia.CheckmarkView
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:id="@+id/view"
app:first_leg_length="50"
app:second_leg_length="100"
app:total_duration="1500"
app:stroke_width="20"
app:stroke_color="#22000000"/>
<强> Repository 强>
更新4/2/15
我已经进一步玩了这一点,并添加了动态偏移计算(说中心化的方式)到 tick ,这意味着我们可以生成大的复选标记,小的选中标记,粗细或粗,反转或直线,它们将在视图中居中。对于大于容器的复选标记,不能保证相同,它们很可能会被裁剪。
以下是为此演示生成的一些复选标记,当然,动画就像绘制一样,效果可以非常令人愉悦且资源友好。毕竟,这毕竟是一个非常有趣的主题。