自定義AlertDialog的Style并延遲消失Dialog

private AlertDialog dialog;
private static int DIALOG_SUCCESS = 1;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
if (null != dialog) {
if (DIALOG_SUCCESS == msg.what && dialog.isShowing()) {
dialog.dismiss();
finish();
} else
dialog.dismiss();
}
}
};

由于本項目業(yè)務(wù)需要,布局僅顯示附帶一張圖片的textview。

dialog = new AlertDialog.Builder(this, R.style.NoticeDialogStyle).create();
dialog.show();
dialog.setCanceledOnTouchOutside(false);
Window window = dialog.getWindow();
if (code.equals(Constants.RESULT_OK)) {
window.setContentView(R.layout.include_release_notice_success);
mHandler.sendEmptyMessageDelayed(DIALOG_SUCCESS, 2000);
setResult(REQUEST_RELEASE);
} else {
window.setContentView(R.layout.include_release_notice_fail);
int DIALOG_FAIL = 0;
mHandler.sendEmptyMessageDelayed(DIALOG_FAIL, 2000);
}

其中R.style.NoticeDialogStyle需要在styles文件中自定義:

<style name="NoticeDialogStyle">
//使透明,否則邊框弧度之外仍存在背景色
<item name="android:windowBackground">@android:color/transparent</item>
//使漂浮,否則滿屏
<item name="android:windowIsFloating">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
</style>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容