Java ImageView展开动画
我基本上有一个ImageView,它通过Java ImageView展开动画,java,android,xml,animation,canvas,Java,Android,Xml,Animation,Canvas,我基本上有一个ImageView,它通过Canvas进行了修改,看起来像一个cirlce。(原始图像的尺寸为正方形(500x500)) 想象一下起始位置的样子: (红色是透明的,在Canvas方法的帮助下被删除) 动画大约需要1000毫秒,在此期间,一步一步恢复到原始图片。因此,最终应该会再次出现一个sqaure 换言之,切割角是正方形和圆形之间的差异(图像中有红色标记),在大约1000毫秒内一步一步地恢复,并带有一种扩散的动画效果 对于如何实现这一点,我真的没有任何线索,所以我可以分享我用来
Canvas
进行了修改,看起来像一个cirlce。(原始图像的尺寸为正方形(500x500))
想象一下起始位置的样子:
(红色是透明的,在Canvas
方法的帮助下被删除)
动画大约需要1000毫秒,在此期间,一步一步恢复到原始图片。因此,最终应该会再次出现一个sqaure
换言之,切割角是正方形和圆形之间的差异(图像中有红色标记),在大约1000毫秒内一步一步地恢复,并带有一种扩散的动画效果
对于如何实现这一点,我真的没有任何线索,所以我可以分享我用来切掉角落的Canvas
方法(如果有帮助的话:X):
谢谢你的帮助,
谢谢大家! 实现这种行为的方法有很多。例如,您可以创建自定义视图并覆盖其onDraw方法,例如
@Override
public void onDraw(Canvas canvas) {
canvas.drawCircle(viewWidth/2, viewHeight/2, currentRadius, paint);
}
然后你可以一点一点地增加半径并使视图无效。由于视图在默认情况下是可用的,因此将剪辑在其剪贴簿上(除非你另有设置,否则你只能在viewidth x viewheight矩形内绘制),你将得到你想要的效果。然后可以调整插值以获得更平滑、更自然的动画
注意:位图着色器已附加到绘制(您已经知道如何创建它)。我不在代码中包含它,因为出于性能原因,不应该在onDraw方法中初始化它 那么你发布了图片,起始位置是什么,最终位置是什么?@pskink正方形(图片的原始大小)由于我发布的canvas方法修改了正方形,它看起来像一个圆圈。这也是我当前的状态,效果很好。然而,我想要的是圆恢复到它原来的形状/大小(正方形),带有一种扩散的动画。:)对不起,我不知道你到底想要什么
@Override
public void onDraw(Canvas canvas) {
canvas.drawCircle(viewWidth/2, viewHeight/2, currentRadius, paint);
}