您的位置:首页 > 其它

设置对话框位置,设置对话框透明度等

2016-07-22 22:32 239 查看
今天给大家讲一些关于对话框的小知识点。

1.设置对话框的位置

AlterDialog dialog=new AlterDialog.Builder(this)
.setMessage("在顶端显示对话框").setPositiveButton("确定",null).create();
Window window=dialog.getWindow();
//调用setGravity方法在屏幕左上方显示
window.setGravity(Gravity.TOP|Gravity.LEFT);
dialog.show();

2.android默认AlterDialog弹出的对话框无论单击任何按钮都会关闭对话框,如何才能做到自定义它的关闭与开启

通过常规方法无法阻止对话框的关闭,但可以采用一种欺骗系统的方法来达到目的。在AlterDialog类中有一个mShowing变量,当该变量为true时表示对话框正在显示,系统会关闭对话框。如果mShowing变量是false,系统认为对话框已经关闭而不再关闭对话框。因此只需要在按钮单击实践中将该变量设置为false,系统就不会自动关闭对话框了。

try{
Field field=dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
//将mShowing变量设为fals,好让系统认为对话框已关闭
field.set(dialog,false);
}catch(Exception e){

}


执行上面的代码后,关闭对话框的dismiss()方法将失效,因此,如果想关闭对话框,还需要将AlterDialog.mShowing变量的值设为true;

3.改变对话框的透明度

通过设置Window的alpha属性可以改变对话框的透明度

AlterDialog dialog=new AlterDialog.Builder(this)
.setMessage("透明对话框").setPositiveButton("确定",null).create();
Window window =dialog.getWindow();
WindowManager.LayoutParam lp=window.getAttributes();
//设置透明度为0.7f
//alpha的属性值的范围为0.0f到1.0f,1.0f(默认值)不透明,0.0f完全透明
lp.alpha=0.7f;
window.setAttributes(lp);
dialog.show();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: