Android怎么自定义样式圆角dialog对话框

发布时间:2021-11-15 09:05:55 作者:iii
来源:亿速云 阅读:497

这篇文章主要介绍“Android怎么自定义样式圆角dialog对话框”,在日常操作中,相信很多人在Android怎么自定义样式圆角dialog对话框问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android怎么自定义样式圆角dialog对话框”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

做法:

1.在res文件的layout文件夹创建自己的对话框布局,命名为my_dialog.xml
2.在res文件的drawable文件夹创建自己的对话框样式(圆角),命名为my_dialog_shape.xml
3.写一个方法调用对话框布局,触发条件自定义,这里我是写了一个按钮,在按钮的点击事件里调用方法,弹出对话框。在这个方法里可以定义对话框的标题、正文、点击确定或取消时触发的事件等,还可以设定对话框在屏幕上的显示位置
4.在需要弹出对话框的地方调用方法

上代码:

1.在res文件的layout文件夹创建自己的对话框布局,命名为my_dialog.xml

对话框内部控件的显示位置都可以在这里自己调整

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="16dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:textColor="@color/black"
        android:textStyle="bold"
        android:layout_marginTop="14dp"
        android:gravity="center"
        android:layout_gravity="center"
        android:id="@+id/title"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:textColor="@color/black"
        android:layout_marginTop="16dp"
        android:layout_marginHorizontal="16dp"
        android:gravity="center"
        android:layout_gravity="center"
        android:id="@+id/message"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginHorizontal="20dp"
        android:layout_marginTop="16dp">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="取消"
            android:textSize="16sp"
            android:textColor="@color/white"
            android:background="@null"
            android:layout_marginRight="14dp"
            android:id="@+id/btn_cancel"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="确定"
            android:textSize="16sp"
            android:textColor="@color/white"
            android:id="@+id/btn_confirm"/>
    </LinearLayout>

</LinearLayout>

2.在res文件的drawable文件夹创建自己的对话框样式(圆角),命名为my_dialog_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/white" />
    <corners android:radius="20dp"/>
</shape>

3.写一个方法调用对话框布局,触发条件自定义,这里我是写了一个按钮,在按钮的点击事件里调用方法,弹出对话框。在这个方法里可以定义对话框的标题、正文、点击确定或取消时触发的事件等,还可以设定对话框在屏幕上的显示位置

public void my_dialog(Context context)  {
        View inflateLayout = LayoutInflater.from(context).inflate(R.layout.my_dialog,null);
        TextView unbind_title = (TextView) inflateLayout.findViewById(R.id.title);
        unbind_title.setText("标题");
        TextView unbind_message = (TextView) inflateLayout.findViewById(R.id.message);
        unbind_message.setText("正文");
        AlertDialog builderDialog = new AlertDialog.Builder(context)
                .setView(inflateLayout)
                .setCancelable(false)  //使用户只能通过点击对话框的确定或取消关闭对话框
                .create();

        inflateLayout.findViewById(R.id.btn_confirm).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(context, "你点击了确定", Toast.LENGTH_SHORT).show();
                builderDialog.dismiss();
            }
        });

        inflateLayout.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "你点击了取消", Toast.LENGTH_SHORT).show();
                builderDialog.dismiss();
            }
        });
        builderDialog.getWindow().setBackgroundDrawableResource(R.drawable.my_dialog_shape); //设置对话框的样式
        WindowManager.LayoutParams params = builderDialog.getWindow().getAttributes();
        params.y = 1000;
        builderDialog.getWindow().setAttributes(params);
        builderDialog.show();
        builderDialog.getWindow().setGravity(Gravity.TOP); //设置对话框展示在距离屏幕顶部1000的位置
    }

4.在需要弹出对话框的地方调用方法

例如:我在MainActivity里点击了一下button,触发了弹出对话框的方法

Button pops_up = (Button) findViewById(R.id.pops_up);
        pops_up.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                my_dialog(MainActivity.this);
            }
        });

到此,关于“Android怎么自定义样式圆角dialog对话框”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. Android对话框Dialog 的一点小问题
  2. android dialog

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android dialog

上一篇:Android如何自定义实现日历控件

下一篇:Android如何利用SoundPool实现音乐池

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》