前言
实现上还不完善,主要是思路的展示,为了抛砖引玉。
效果图
原理
自定义 Dialog 展示引导视图。设置 Dialog 的 BackgroundDrawable 为一个有一块透明的 Bitmap。这个 Bitmap 借由 Canvas 创建。中间透明则用到 Paint 的 XferMode。paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
。使用它可以镂空。
源码
public class ShowCaseDialog extends Dialog {
private Window dialogWindow;
private Rect transparentRect;
public ShowCaseDialog(Context context) {
super(context);
init();
}
public ShowCaseDialog(Context context, int theme) {
super(context, theme);
init();
}
protected