您的位置 首页 芯闻

Android 自定义Dialog 操控

/** 获取对话框的窗口对象及参数对象以修改对话框的布局设置,* 可以直接调用getWindow(),表示获得这个Activity的Window* 对象,这样这可以以同样的方式改变

/*

* 获取对话框的窗口目标及参数目标以修正对话框的布局设置,

* 能够直接调用getWindow(),表明取得这个Activity的Window

* 目标,这样这能够以相同的方法改动这个Activity的特点.

*/

Window dialogWindow = dialog.getWindow();

WindowManager.LayoutParams lp = dialogWindow.getAttributes();

dialogWindow.setGravity(Gravity.LEFT | Gravity.TOP);

/*

* lp.x与lp.y表明相对于原始方位的偏移.

* 当参数值包括Gravity.LEFT时,对话框呈现在左面,所以lp.x就表明相对左面的偏移,负值疏忽.

* 当参数值包括Gravity.RIGHT时,对话框呈现在右边,所以lp.x就表明相对右边的偏移,负值疏忽.

* 当参数值包括Gravity.TOP时,对话框呈现在上边,所以lp.y就表明相对上边的偏移,负值疏忽.

* 当参数值包括Gravity.BOTTOM时,对话框呈现在下边,所以lp.y就表明相对下边的偏移,负值疏忽.

* 当参数值包括Gravity.CENTER_HORIZONTAL时

* ,对话框水平居中,所以lp.x就表明在水平居中的方位移动lp.x像素,正值向右移动,负值向左移动.

* 当参数值包括Gravity.CENTER_VERTICAL时

* ,对话框笔直居中,所以lp.y就表明在笔直居中的方位移动lp.y像素,正值向右移动,负值向左移动.

* gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL |

* Gravity.CENTER_VERTICAL.

*

* 原本setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应呈现在程序的左上角,但在

* 我手机上测验时发现距左面与上边都有一小段间隔,并且笔直坐标把程序标题栏也核算在内了,

* Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据鸿沟有一小段间隔

*/

lp.x = 100; // 新方位X坐标lp.y = 100; // 新方位Y坐标

lp.width = 300; // 宽度

lp.height = 300; // 高度

lp.alpha = 0.7f; // 透明度

// 当Window的Attributes改动时体系会调用此函数,能够直接调用以运用上面临窗口参数的更改,也能够用setAttributes

// dialog.onWindowAttributesChanged(lp);

dialogWindow.setAttributes(lp);

/*

* 将对话框的巨细按屏幕巨细的百分比设置

*/

// WindowManager m = getWindowManager();

// Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用

// WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当时的参数值

// p.height = (int) (d.getHeight() * 0.6); // 高度设置为屏幕的0.6

// p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.95

// dialogWindow.setAttributes(p);

2、AlertDialog对话框的回来键捕获

当调用了体系的AlertDialog后,再按回来键只会让AlertDialog消失,可是重写OnkeyDown捕捉不到。对些有些操作不能进行。现在有2种方法。

1:屏蔽到体系的回来键功用。也就是在呈现AlertDialog后,只能运用Dialog上按钮确认或许撤销。

alertdialog.setCancelable(false);屏蔽到本来的回来键功用

2:重写接口

alertdialog.setOnCancelListener(listener);这个接口是当让Dialog消失的时分的接口。不仅仅回来键有这个功用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/301085.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部