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

今天给大家讲一些关于对话框的小知识点。

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.0f1.0f1.0f(默认值)不透明,0.0f完全透明
    lp.alpha=0.7f;
    window.setAttributes(lp);
    dialog.show();
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值