Android应用更新介绍提醒框

来源:互联网 发布:广州数据 编辑:程序博客网 时间:2024/05/16 05:16

在很多Android应用更新的时候或者在第一次启动的时候会有一些功能使用指引,今天查了些资料,总结了两套方案:

  1. 继承AlertDialog
  2. 直接用WindowManager
import android.view.WindowManager.LayoutParams;public class TipsDialog extends AlertDialog {    private boolean isShown = false;    private int mShowDur = 0;    public TipsDialog(Context context, int theme) {        super(context, theme);    }    public TipsDialog(Context context) {        super(context, R.style.dialog_tip);    }    /**     * 设置弹框消失的时间     */    public void setShowDuration(int ms) {        mShowDur = ms;    }// 设置弹框显示的位置,从 (0,0)作为起始位置    public void setShowPoint(int xPix, int yPix) {        Window win = getWindow();        LayoutParams params = new LayoutParams();        WindowManager wm = win.getWindowManager();        Point point = new Point();        wm.getDefaultDisplay().getSize(point);        int width = -point.x / 2 + xPix;        int height = -point.y / 2 + yPix;        params.x = width;        params.y = height;        win.setAttributes(params);    }// 设置显示的view    public void show(View view) {        setCanceledOnTouchOutside(true);        show();        setContentView(view);        isShown = true;        // 如果时长大于0则延迟隐藏弹框        if (mShowDur > 0) {            mHandler.sendEmptyMessageDelayed(0, mShowDur);        }    }    private Handler mHandler = new Handler() {        public void handleMessage(android.os.Message msg) {            if (isShown) {                dismiss();            }        };    };    @Override    public void dismiss() {        super.dismiss();        isShown = false;    }    // 任意按键都隐藏    @Override    public boolean onKeyDown(int keyCode, KeyEvent event) {        dismiss();        return super.onKeyDown(keyCode, event);    }}

此方法比较方便

0 0
原创粉丝点击