控制对话框位置,在屏幕点击位置弹出对话框
来源:互联网 发布:淘宝网的苹果旗舰店 编辑:程序博客网 时间:2024/05/19 14:51
问题:
1,Dialog默认会显示在屏幕正中间位置,如何控制其显示位置?
2,如何在点击位置显示Dialog?
Dialog默认会显示在屏幕正中间位置,如何控制其显示位置?
控制dialog的弹出位置:
通过Window类的setGravity(int)来进行设置。
如:在屏幕顶端显示:
Dialogdialog = dialog = new Dialog(this, R.style.dialog);
dialog.setContentView(R.layout.q006_dialog); //R.layout.q006_dialog为自定义的dilog布局
Windowmwindow = dialog.getWindow();
mwindow.setGravity(Gravity.TOP);
dialog.show();
如何在点击位置显示Dialog?
首先,需要获得被点击View的绝对坐标:
//假设屏幕中有一个ImageView img,获得其在屏幕上的坐标
finalint[] location = new int[2];
img.getLocationOnScreen(location);
然后,通过设置WindowManager.LayoutParams,控制Dialog显示位置
WinowManager.LayoutParams lp = mwindow.getAttributes();
lp.x= location[0];
lp.y= location[1];
Toast.makeText(context,"x:"+lp.x+",y:"+lp.y, 3000).show();
mwindow.setAttributes(lp);
备注:还可以通过view的getHeight(),getWidth()方法获得view的宽度、高度信息,进一步设置dialog位置。
如:
lp.x= location[0] - img.getHeight();
lp.y= location[1] - img.getWidth();
此外,还可以通过设置lp的alpha控制dialog的透明度。
默认显示的对话框是不透明的,可以通过设置对话框的alpha值将其变成透明或半透明效果。颜色由R(红)、 G(绿)、B(蓝)组成。除此,还会有一个A(透明度,Alpha)来描述颜色。在颜色的描述中,值为0表示完全透明,值为255,表示不透明。
通过设置Windows的alpha属性也可以设置对话框的透明度。但alpha的取值范围是从0到1.0。如果该属性值为0,表示完全透明,如果该值为1.0,表示不透明(也就是正常显示的对话框)。
如:lp.alpha = 0.5f;
- 控制对话框位置,在屏幕点击位置弹出对话框
- android 控制对话框位置
- wpf 对话框显示在鼠标点击的位置
- 弹出 窗口对话框,指定大小,指定位置
- android 对话框弹出位置和透明度详解
- MFC设置对话框弹出的位置
- AlertDialog弹出对话框点击屏幕退出
- Android对话框的高级设置《二》设置对话框按钮的透明度和对话框的在屏幕上的显示位置
- Android 自定义对话框(控制大小、位置)
- 获得控件在对话框中的位置
- 在使用模式对话框时,实时改变对话框的位置
- MFC对话框应用程序 如何在对话框窗口显示前获取窗口(控件)的屏幕坐标位置
- 在弹出模态对话框(消息框)的同时设置他的位置
- 在弹出模态对话框(消息框)的同时设置他的位置
- 怎么在区域里判断弹出对话框然的出现位置?
- 修正jquery-weui对话框在IOS上的弹出起始位置的问题
- 对话框全屏、位置等
- 设置对话框显示位置
- 杭电ACM 2046 骨牌铺方格
- 从android系统图库中取图片的代码
- javascript 判断两个变量是否相等
- 源程序到目标程序处理过程
- B-tree索引 和 Hash索引 的区别
- 控制对话框位置,在屏幕点击位置弹出对话框
- 如何使用SBJson
- 2013年一二月份寒假SSH项目——乱码问题
- C#网络编程(基本概念和操作) - Part.1
- 反编译apk文件,得到其源代码的方法!!
- 周鸿祎谈: 创新与微创新
- C#系列教程——传递给命令行应用程序
- iOS股票k线组件源码,支持其他图表类型
- Cohn-Kanade数据库