代码搞起
创建一个类用来自定义
public class MyDoublePlay extends FrameLayout {
Context contexta ;
long aLong = 200; // 双击之间的时间差
long time = 0 ; // 上一次的时间
public MyDoublePlay(@NonNull Context context) {
super(context);
init(context);
}
public MyDoublePlay(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
public MyDoublePlay(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
contexta = context;
}
@Override
protected void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction()){
case MotionEvent.ACTION_DOWN:
long l = System.currentTimeMillis(); //获取当前时间
long xian = l-time;//当前时间-上一次的时间
if (xian <aLong){
Toast.makeText(contexta, "双击", Toast.LENGTH_SHORT).show();
ImageView imageView = new ImageView(getContext());
imageView.setImageResource(R.mipmap.detail_icon_like_doublepressed);
LayoutParams layoutParams = new LayoutParams(80, 80);
layoutParams.leftMargin = (int) ev.getX();
layoutParams.topMargin = (int) ev.getY();
imageView.setLayoutParams(layoutParams);
addView(imageView);
// 设置动画
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(ScaleA(imageView,"ScaleY",0.2f,1,0.2f,1,1000,0))
.with(ScaleA(imageView,"ScaleX",0.2f,1,0.2f,1,1000,0));
animatorSet.start();
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
removeViewInLayout(imageView);
}
});
}
time = l;
break;
}
return super.dispatchTouchEvent(ev);
}
private ObjectAnimator ScaleA(ImageView imageView, String scaleY, float x, int XM, float y, int YM, int Dou, int deluy) {
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(imageView, scaleY, x, XM);
objectAnimator.setDuration(Dou);
objectAnimator.setStartDelay(deluy);
objectAnimator.setRepeatCount(1);
return objectAnimator;
}
}
Xml页面
<com.example.myapp830_.MyDoublePlay
android:layout_width="match_parent"
android:layout_height="match_parent"/>