• 监听外部区域点击事件的抽象父类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(安卓)Relative Layout 安卓相对布局详解
  2. Android实现天气预报温度/气温折线趋势图
  3. Android(安卓)Relative Layout 安卓相对布局详解
  4. Android布局之相对布局——RelativeLayout
  5. (转)Android中LocationManager的简单使用,获取当前位置
  6. Android(安卓)Graphics专题(1)--- Canvas基础
  7. 【Android】使RecyclerView 支持setEmptyView
  8. Android(安卓)DrawBitmap绘制图像
  9. Android通过PopupMenu定义弹出菜单的位置

随机推荐

  1. Android中android:id="@id/变量名"和andr
  2. Android 中的长度单位详解
  3. Android(安卓)ListView下拉刷新点击加载
  4. Android studio百度地图SDK开发 2020最新
  5. 如何有效的清除Android中无用的资源(静态
  6. [Android]使用platform密钥来给apk文件签
  7. android调用google地图
  8. Android之RadioGroup获取选中值
  9. Android 精选项目简介(可参考)
  10. 控件事件android中自定义控件