android|android dialog的内容和标题的居中或者布局的更动
因为上一篇文章讲的是关机弹出框,这一章我们也说一下关于dialog的一些自定义的使用,如果只是普通的方法的话,我这里就简要概述,因为其他人的写的比我更好。
我们在使用dialog的时候,如果现在我不想要dialog有确定或者取消,应该怎么去做呢。
文章图片
这个是一个普通的dialog
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this)
.setTitle("我是原始标题")
.setMessage("我是原始的message")
.setPositiveButton("entar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("cencle", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert.show();
上面的这个可以说是我们最基本的dialog
-------------------------------------------------分割线-----------------------------------------------------
文章图片
如果想去掉确定取消
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this)
.setTitle("我是原始标题")
.setMessage("我是原始的message");
alert.show();
只需要在创建dialog的时候不加入dialog相关的确定取消就可以
如果你还不想让别人通过按返回退出这个dialog
可以设置这个属性
alert.setCancelable(false);
设置为false,按返回键不能退出。默认为true。
-------------------------------------------------分割线-----------------------------------------------------
内容的居中
文章图片
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this)
.setTitle("我是原始标题");
TextView msg = new TextView(this);
msg.setText("我是自定义的dialog的message");
msg.setPadding(10, 10, 10, 10);
msg.setGravity(Gravity.CENTER);
msg.setTextSize(18);
alert.setView(msg);
alert.setCancelable(false);
alert.show();
这里我把setCancelable设置成了false,没办法取消这个dialog
-------------------------------------------------分割线-----------------------------------------------------
标题的居中
文章图片
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this)
.setMessage("我是原始的message");
TextView title = new TextView(this);
title.setText("我是自定义的dialog的title");
title.setPadding(10, 10, 10, 10);
//边距
title.setGravity(Gravity.CENTER);
//位置
title.setTextColor(getResources().getColor(R.color.bg_image));
//字体的颜色
title.setTextSize(23);
//字体的大小
alert.setCustomTitle(title);
//设置字体
alert.show();
其实标题的居中和内容的居中没有多大的区别,只是在对不同的字体进行设置。
-------------------------------------------------分割线-----------------------------------------------------
布局的改动
WindowManager.LayoutParams params = sConfirmDialog.getWindow().getAttributes();
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
params.width = width / 2;
sConfirmDialog.getWindow().setAttributes(params);
这里我得到窗口的大小,然后在设置到我们的dialog上面。
这里只是对width进行了设置,得到窗口的大小然后除以2就是dialog的横向距离
文章图片
例如我不指定dialog,然后整个布局就变成了这样子。
代码如下
WindowManager.LayoutParams params = getWindow().getAttributes();
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
params.width = width / 2;
getWindow().setAttributes(params);
总结
dialog还有其他的属性,有兴趣的读者可以自己去探索。
源码相关的下载地址
【android|android dialog的内容和标题的居中或者布局的更动】链接:https://pan.baidu.com/s/1_GQNhKOVRh1yHP4hS93ZkA 密码:tigt
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量