• 监听外部区域点击事件的抽象父类Dialog
public abstract class OutsideClickDialog extends Dialog {    public OutsideClickDialog(@NonNull Context context) {        super(context);    }    public OutsideClickDialog(@NonNull Context context, int themeResId) {        super(context, themeResId);    }    protected OutsideClickDialog(@NonNull Context context, boolean cancelable, @Nullable OnCancelListener cancelListener) {        super(context, cancelable, cancelListener);    }    protected abstract void onTouchOutside();    @Override    public boolean onTouchEvent(@NonNull MotionEvent event) {        //点击弹窗外部区域        if (isOutOfBounds(getContext(), event)) {            onTouchOutside();        }        return super.onTouchEvent(event);    }    private boolean isOutOfBounds(Context context, MotionEvent event) {        final int x = (int) event.getX();//相对弹窗左上角的x坐标        final int y = (int) event.getY();//相对弹窗左上角的y坐标        final int slop = ViewConfiguration.get(context).getScaledWindowTouchSlop();//最小识别距离        final View decorView = getWindow().getDecorView();//弹窗的根View        return (x < -slop) || (y < -slop) || (x > (decorView.getWidth() + slop))                || (y > (decorView.getHeight() + slop));    }}

更多相关文章

  1. Android 在TextView中加入多个点击文本区域
  2. Android 点击空白区域 软键盘消失
  3. Android单击屏幕获得坐标,屏幕多点触摸测试器
  4. Android——扩大ImageButton的点击区域
  5. android点击空白区域隐藏软键盘的实现
  6. android朋友圈监听键盘状态 点击空白区域隐藏键盘
  7. Android Canvas类介绍和Android Draw Rect 坐标图示

随机推荐

  1. 可能是最详细的Android点击事件处理详解(
  2. 13-4-4 android的SQLite功能应用
  3. Android(安卓)selector中设置 android:st
  4. android 选择器selector的用法说明
  5. Android 保存数据到文件
  6. Android(java)学习笔记113:Android编写代码
  7. Android群英传第五章笔记·Android Scrol
  8. android中showSoftInput不起作用
  9. requestWindowFeature使用详解
  10. Android Retrofit 源码系列(一)~ 原理剖析