您的位置:首页 > 移动开发 > Android开发

Android应用更新介绍提醒框

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

继承AlertDialog

直接用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);
}
}


此方法比较方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: