自定义dialog 默认的显示位置是window 的位置

我们可以通过dialog或者窗口对象 window 然后通过window 去设置dialog的上下中的位置

例如 dialog.getWindow(); 得到window对象

window.setGravity(Gravity.CENTER); 中间位置

window.setGravity(Gravity.BOTTEM); 底部位置

window.setGravity(Gravity.TOP); 顶部位置

等等 上下左右你都可以去设置

现在我们设定了dialog在wendow 中的位置 然而这样并不能满足我们的需求 我想dialog 显示在距离顶部有一段距离的地方显示 例如距离顶部100 的位置该怎么办呢

有办法 仍然是通过window去设置

WindowManager.LayoutParams params = window.getAttributes(); 获取window 的params 然后给params去设置x y 参数即可 我们设置的 x y 是相对值 相对自身位置的偏移量 负值无效(显而易见 x 是代表水平方向的偏移 y 代表竖直方向的偏移)

简单举个栗子

* 当参数值包含Gravity.LEFT时,对话框出现在左边,所以params.x就表示相对左边的偏移

* 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以params.x就表示相对右边的偏移

* 当参数值包含Gravity.TOP时,对话框出现在上边,所以params.y就表示相对上边的偏移

* 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以params.y就表示相对下边的偏移

注意 负值无效

还是刚才那个需求 我有一个dialog 想让它显示在距离顶部100 的位置

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

View view = LayoutInflater.from(getActivity()).inflate(R.layout.home_identity_choose_window,

null);

builder.setView(view);

titleDialog = builder.create();

Window window = titleDialog.getWindow();

WindowManager.LayoutParams params = window.getAttributes();

params.x = 10;

params.y = 100;

params.width = 220;

params.height = 200;

window.setAttributes(params);

titleDialog.show();

window.setGravity(Gravity.TOP);

这个就可以了

还有一种方式就是按照屏幕比例设置

// WindowManager m = getWindowManager();

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

// WindowManager.LayoutParams params = dialogWindow.getAttributes();

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

// params.width = (int) (d.getWidth() * 0.6); // 宽度设置为屏幕的0.6

// dialogWindow.setAttributes(params);

这样你就可以自由设置dialog的位置了

版权声明:本文为博主原创文章,未经博主允许不得转载。

android 设置屏幕固定位置,Android 关于dialog的显示位置设置相关推荐

  1. 获取滑动条位置,动态调整对话框显示位置;为动态添加的button添加click事件

    1.获取滑动条位置,动态调整对话框显示位置 应用场景:页面上有三个按钮,所处位置高度不同,有的按钮需要移动滑动条才能看到,各个按钮点击后要弹出同一个对话框,为了保证对话框始终显示在当前视野的中央位置, ...

  2. android 多屏幕 设计翻译,android Supporting multiple screen翻译一

    Multiple screens quickview:多个屏幕quickview: ·Android runs on devices that have different screen sizes ...

  3. android 主屏幕,如何重置Android主屏幕返回到默认启动

    一个关于最好的Android操作系统是,你可以给通过自定义您的Android体验,而无需Root权限的设备焕然一新. 而这一切都可以通过轻松完成Android启动 . 有很多发射应用程序上提供谷歌Pl ...

  4. android 实现屏幕录制功能,Android实现屏幕录制功能

    本文实例为大家分享了Android实现屏幕录制功能的具体代码,供大家参考,具体内容如下 1.效果图: 2.添加依赖 dependencies { implementation fileTree(dir ...

  5. pc控制android手机屏幕亮度,调整android手机屏幕亮度

    贴一段调整安卓手机屏幕亮度的代码 ,可以参考使用,见下: public void setBrightness(int level) { ContentResolver cr = getContentR ...

  6. android 多屏幕 设计翻译,android设计4(翻译).pdf

    android设计4(翻译).pdf Android design (中文) 安卓设计 译自谷歌安卓官方文档: /design/index.html 版权归属遵循:Creative Commons A ...

  7. android 设置屏幕对比度,【Android】安卓调节屏幕亮度

    首先需要申请WRITE_SETTINGS权限,在清单文件里面注册; 这个权限有些特殊,代码如下: 需要注意的时,下面的代码需要判断系统的版本大于23,才可以 private static final ...

  8. Winform中设置Dialog的显示位置居中

    场景 点击按钮使窗体以Dialog的方式显示,即弹窗. //声明窗体对象ChartOption chartOption = new ChartOption();//显示DialogchartOptio ...

  9. android旋转屏幕 简册,[Android][旋转屏幕]

    1.落笔缘由 最近在研究旋转屏幕,网上可以找到资料,发现他们基本都是在Activity的基础上进行旋转.自己也想研究一下,能不能实现只旋转屏幕的内容,而不旋转屏幕上的菜单.例如,我点击屏幕上的按钮,页 ...

  10. Android开发屏幕自动变暗,Android实现长时间不用屏幕变暗

    直接上代码,代码如下: import android.app.Activity; import android.os.Bundle; import android.os.Handler; import ...

最新文章

  1. 使用FileItem获取文件名时注意事项
  2. 1 Knight Moves
  3. 1280*720P和1920*1080P的视频在25帧30帧50帧60帧时的参数
  4. bzoj1116 [POI2008]CLO
  5. swift 自定义TabBarItem
  6. 高级网络营销师黄杰告诉你:怎样建网站?网站建设只需三步
  7. python通过MySQLdb操作mysql
  8. 两年前端历程回顾的思考与总结
  9. 频谱感知2:衰落信道上未知信号的能量检测
  10. Mac版 matlab 安装 GAOT工具箱
  11. sql基础语法(增、删、改、查)
  12. 高中计算机课程事例,【高中信息技术教学案例】_《高中信息技术新课程教学案例集》介绍...
  13. App Store 审核指南 审核失败对照
  14. 【homework】类与对象的基础应用(Student类)
  15. 男女朋友关系是这么确定的。。。【其实相爱很简单】
  16. 三角形二(海伦公式)
  17. 如何通过病毒营销打造爆款产品
  18. 租房微信小程序--基于微信云开发--小程序端集成了管理员后台
  19. ios 蓝牙对战实现
  20. python3.8.2怎么卸载_Python卸载

热门文章

  1. 网站优化如何创作优质的内容?
  2. Java经典编程题50道之三十二
  3. 转HashMap Hashtable区别
  4. 创建一个新数组并指定数组的长度
  5. 国庆记事之一:小白结婚及我跟女朋友吵架
  6. 深入分析自定义表单验证与Cookies
  7. 零件缝隙平行线距离检测2
  8. 190101每日一句
  9. Opencv结合socket进行视频传输(TCP协议)
  10. Atitit 防伪防篡改方法总结关键数据的防篡改检验方法