美文网首页
android dialog的内容和标题的居中或者布局的更动

android dialog的内容和标题的居中或者布局的更动

作者: 不吃鱼的猫_992d | 来源:发表于2018-08-28 21:53 被阅读0次

    因为上一篇文章讲的是关机弹出框,这一章我们也说一下关于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还有其他的属性,有兴趣的读者可以自己去探索。

    源码相关的下载地址

    链接:https://pan.baidu.com/s/1_GQNhKOVRh1yHP4hS93ZkA 密码:tigt

    相关文章

      网友评论

          本文标题:android dialog的内容和标题的居中或者布局的更动

          本文链接:https://www.haomeiwen.com/subject/qiqcwftx.html