码迷,mamicode.com
首页 > 其他好文 > 详细

简单的自定义alertdialog

时间:2015-08-27 15:07:05      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

今天用到的自定义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); // 高度设置为屏幕的0.6
p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.65
window.setAttributes(p);
但是这种方式下设置的 p.height 改变的是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);
//TextView tv = (TextView) window.findViewById(R.id.tv);
//tv.setText("正在登录,请稍后");
WindowManager manager= getWindowManager();
Display display = manager.getDefaultDisplay() ;
WindowManager.LayoutParams params = window.getAttributes() ;
params.height = 1000;
params.width = 800;
// window.setLayout(params.width, params.height);     //这样设置同样是只有宽度改变。。

// dialog.onWindowAttributesChanged(params);
window.setAttributes(params);



简单的自定义alertdialog

标签:

原文地址:http://www.cnblogs.com/jkx1229761162/p/4763201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!