博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两种方式分别改变alertdialog的宽和高
阅读量:5907 次
发布时间:2019-06-19

本文共 1575 字,大约阅读时间需要 5 分钟。

今天用到的自定义dialog有两种方式。但是改变宽和高费了半天时间,网上也没有人遇到过这种情况。。所以最终用了两种方式分别改宽和高才成功。

方式一:添加一个xml文件,里面添加dialog的样式,然后:

   Window window = dialog.getWindow() ;

window.setContentView(R.layout.login_wait_dialog);     //自定义一个xml文件

TextView tv = (TextView) window.findViewById(R.id.tv);
tv.setText("正在登录,请稍后");

方式二:使用windowmanager设置dialog的params,然后添加到dialog中:

/*          * 将对话框的大小按屏幕大小的百分比设置          */      Window window = dialog.getWindow() ;       WindowManager m = getWindowManager();        Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用        WindowManager.LayoutParams p = window.getAttributes(); // 获取对话框当前的参数值       p.height = (int) (d.getHeight() * 0.6); // 改变的是dialog框在屏幕中的位置而不是大小
p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.65        window.setAttributes(p); 最终使用两种方式分别更改dialog框的宽和高才成功。 代码:

Builder builder = new AlertDialog.Builder(LoginActivity.this);

final AlertDialog dialog = builder.create() ;
dialog.setTitle("正在登录,请稍后");
dialog.show();
//这些设置必须放在 dialog.show();后面才能有效果
Window window = dialog.getWindow() ;
window.setContentView(R.layout.login_wait_dialog);
RelativeLayout relayout = (RelativeLayout) window.findViewById(R.id.relayout);
Display display =getWindowManager().getDefaultDisplay();
int minHeight = (int) (display.getHeight()*0.16);              //使用这种方式更改了dialog的框高
// int minWidth = (int) (display.getWidth()*0.4);             //没有效果
relayout.setMinimumHeight(minHeight);
WindowManager.LayoutParams params = window.getAttributes() ;
params.width =(int) (display.getWidth()*0.5);                     //使用这种方式更改了dialog的框宽
window.setAttributes(params);

 

转载于:https://www.cnblogs.com/jkx1229761162/p/4763201.html

你可能感兴趣的文章
Coredump介绍及如何在Android中开启和使用来分析Crash等问题
查看>>
go语法之一
查看>>
微信应用号开发教程
查看>>
HTAP数据库 PostgreSQL 场景与性能测试之 6 - (OLTP) 空间应用 - KNN查询(搜索附近对象,由近到远排序输出)...
查看>>
安装drbd
查看>>
送上最新鲜的互联网行业新闻-【2015-05-15】
查看>>
一个架构师谈什么是架构以及怎么成为一个架构师
查看>>
JQuery实战--可以编辑的表格
查看>>
公有云行业:用价格撕开市场,用质量取胜行业
查看>>
千兆宽带,谁买账
查看>>
如何在三年内快速成长为一名技术专家
查看>>
java项目实战——Java打飞机小游戏(附完整源码)
查看>>
ASP.NET的路由系统:URL与物理文件的分离
查看>>
轻松入门Android直播相关技术 从0搭建直播系统
查看>>
以css为例谈设计模式
查看>>
Protecting Websites through Semantics-Based Malware Detection
查看>>
JavaScript:到底什么是ES6、ES8、ES 2017、ECMAScript?
查看>>
计算机网络总结之计算机概述
查看>>
YOCSEF:集众家之言诠释云计算缘起
查看>>
MONGOOSE简要API
查看>>