在我的主要活动中,我设置了2个ImageView
个视图,并绑定了OnLongClickListener
个evenets。现在我想在事件发生时添加从这些视图中间扩展的透明红色圆圈的动画。
我还在那些调用OnTouchListener
字段的视图上添加了MotionEvent.ACTION_UP
个事件,以检测其他功能的点击发布情况,我希望这会在点击时立即消失被释放。
因此,当用户点击视图并按住它时,圆圈会以慢动画方式开始扩展到某个点,并在发布时消失。
我该怎么做呢?它太具体了,我自己找不到任何东西,所以我不得不问。
答案 0 :(得分:0)
我做了一些挖掘,并使用animate().scaleXBy
和animate().scaleYBy
方法找到了一个简单的解决方案。
ivRedCircle2.setVisibility(View.VISIBLE);
ivRedCircle1.animate().scaleXBy(4).setDuration(2500);
ivRedCircle1.animate().scaleYBy(4).setDuration(2500);
ivRedCircle1
是对我想要应用此动画的其中一个视图的引用。确切地说,这是放在另一个ImageView
之上的红色圆圈的图片。最初设置为不可见,当触发onLongClick
事件时,图像出现并开始扩展4次。 2500是2500毫秒或2.5秒的持续时间,也就是增长4倍所需的时间。
之后,在触发onTouchListener
的{{1}}事件中,我添加了这段代码,以便使用MotionEvent.ACTION_UP
方法撤消并消失。
setVisibility(View.INVISIBLE)
将ivRedCircle1.animate().scaleXBy(-4).setDuration(1000);
ivRedCircle1.animate().scaleYBy(-4).setDuration(1000);
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
ivRedCircle1.setVisibility(View.INVISIBLE);
}
}, 1000);
置于setVisibility
方法中并且延迟精确到动画的持续时间非常重要,以便在缩回到原始大小时使其消失。