两种方式分别修改Dialog的宽高
来源:互联网 发布:知乎 南北战争的武器 编辑:程序博客网 时间:2024/06/05 06:20
今天用到的自定义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);
- 两种方式分别修改Dialog的宽高
- 自定义dialog的两种方式
- 自定义Dialog的两种实现方式
- dialog全局显示的两种方式
- 分别用大小写两种方式来命名的文件
- dialog的使用,按钮的两种实现方式
- 设置Dialog全屏显示的两种方式
- Android中自定义Dialog常用的两种方式
- jquery easyui 调用dialog的两种方式
- Android中自定义Dialog布局的两种方式比较
- 两种方式获取屏幕宽高
- 两种文件修改的方式
- 多线程——用创建线程的两种方式分别解决经典窗口卖票问题
- hibernate获取session的两种方式分别是openSession() 方法和getCurrentSession() 方法。
- 高性能平台上提交任务的两种方式
- Android实现图片的高斯模糊(两种方式)
- 两种跳转方式分别是什么?有什么区别
- 两种跳转方式分别是什么?两者有什么区别?
- Android“沉浸式”_刨根问底
- SVN:修改已提交日志信息
- Java设计模式-工厂设计模式
- js 转换url '\ ' 至 '/'方法
- 搭建简单hls直播测试服务
- 两种方式分别修改Dialog的宽高
- 如何使用windows的计划任务?
- Learning Compact Binary Descriptors with Unsupervised Deep Neural Networks
- java线程新手应该懂的内容
- 关于设计模式的初步学习
- 文章标题
- ANR定位和修正
- mysql多线程问题
- Eclipse中的Web项目自动部署到Tomcat