参考.
相关demo.

最后效果图

一、自定义dialog

package com.test.dialogdemo;import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;public class MyDialog extends Dialog {//    style引用style样式public MyDialog(Context context, int width, int height, View layout, int style) {super(context, style);setContentView(layout);Window window = getWindow();WindowManager.LayoutParams params = window.getAttributes();params.gravity = Gravity.CENTER;window.setAttributes(params);}}

二、dialog样式
将下面的dialog样式加到vales/styles.xml文件中

    <!-- Dialog样式--><style name="DialogTheme" parent="@android:style/Theme.Dialog"><!-- 边框 --><item name="android:windowFrame">@null</item><!-- 是否浮现在activity之上 --><item name="android:windowIsFloating">true</item><!-- 半透明 --><item name="android:windowIsTranslucent">true</item><!-- 无标题 --><item name="android:windowNoTitle">true</item><item name="android:background">@android:color/transparent</item><!-- 背景透明 --><item name="android:windowBackground">@android:color/transparent</item><!-- 模糊 --><item name="android:backgroundDimEnabled">true</item><!-- 遮罩层 --><item name="android:backgroundDimAmount">0.5</item></style>

三、自定义布局
名称为dialog_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#00FFFFFF" ><RelativeLayoutandroid:layout_width="280dp"android:layout_height="200dp"android:background="@drawable/dialog_bg"android:orientation="vertical"><TextViewandroid:id="@+id/tip"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="20dp"android:text="温馨提示"android:textColor="#FFD306"android:textSize="20dp" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dp"android:text="余额不足,请先充值"android:layout_below="@+id/tip"android:textSize="20dp" /><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:layout_marginTop="20dp"android:background="#c0c0c0"android:layout_above="@+id/ll_btn"/><LinearLayoutandroid:id="@+id/ll_btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:orientation="horizontal"><TextViewandroid:id="@+id/cancel_tv"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center"android:paddingBottom="15dp"android:paddingTop="15dp"android:text="取消"android:textSize="17dp" /><Viewandroid:layout_width="1dp"android:layout_height="match_parent"android:background="#c0c0c0"/><TextViewandroid:id="@+id/confirm_tv"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:paddingTop="15dp"android:paddingBottom="15dp"android:textColor="#FFD306"android:text="确定"android:textSize="17dp"android:gravity="center"/></LinearLayout></RelativeLayout></RelativeLayout>

在drawable资源文件夹下添加背景圆角的dialog_bg.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><corners android:radius="15dp"/><stroke android:color="#c0c0c0" android:width="1dp"/>
</shape>

四、入口函数

package com.test.dialogdemo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Button dialogBt;private MyDialog mMyDialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dialogBt = findViewById(R.id.dialog_bt);dialogBt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {View view = getLayoutInflater().inflate(R.layout.dialog_layout, null);mMyDialog = new MyDialog(MainActivity.this, 0, 0, view, R.style.DialogTheme);mMyDialog.setCancelable(true);TextView cancelTv = view.findViewById(R.id.cancel_tv);TextView confirmTv = view.findViewById(R.id.confirm_tv);cancelTv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "取消", Toast.LENGTH_SHORT).show();mMyDialog.dismiss();}});confirmTv.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show();mMyDialog.dismiss();}});mMyDialog.show();}});}
}

自定义Dialog布局相关推荐

  1. android自定义dialog布局文件,Android自定义Dialog及其布局

    实际项目开发中默认的Dialog无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中,才能在 ...

  2. 自定义布局Dialog 自定义dialog右上角带叉号的dialog 点击右上角叉号关闭dialog

    话说之前写过一遍Android中常见的几种Dialog的介绍和基本用法,但是没有讲到实际项目中最常用到的自定义dialog.正好,马上项目要添加新模块,看到里面有用到自定义dialog部分,于是乎趁着 ...

  3. android dialog 自定义布局,Android自定义Dialog实现加载对话框效果

    前言 最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除两个按钮的对话框我们可以通过代码创建一个AlertDial ...

  4. Android 自定义Dialog 的使用

    单个Dialog 自定义布局 ,这个只能算半自定义,就是一个弹框布局插入到AlertDialog 中 使用setView 即可 代码如下 AlertDialog.Builder builder = n ...

  5. Android中自定义Dialog外形,去除黑底和白色边框

    在做Android开发中经常会使用到自定义样式的Dialog,尤其是在游戏当中,大家通常都是通过自定义一个布局文件来设置Dialog中显示的内容,但是仅仅这样还是不行的~会有黑色的框和白色的边.这就需 ...

  6. android 自定义dialog 定时关闭,Android编程实现自定义Dialog的大小自动控制方法示例...

    本文实例讲述了Android编程实现自定义Dialog的大小自动控制方法.分享给大家供大家参考,具体如下: Android应用开发中,无论是出于功能还是增加用户体验,弹出对话框(Dialog)进行一些 ...

  7. 自定义Dialog(一)

    自定义Dialog(一) Dialog是一种提示用户做决定的小窗口,它一般不会布满整个屏幕,它可以请求用户在程序处理之前做一动作.比如:当退出应用的时候,可以提示用户是否真的需要退出应用,等等. an ...

  8. Android开发之自定义dialog的实现(源代码分享)

    使用系统自带的dialog如果不能满足我们日常开发的需求,那就得自己构建custom dialog,特别是对于一个app来说,统一的样式风格会给人一种舒服的感觉,所以dialog的样式 .色调一般都要 ...

  9. Android 自定义Dialog背景透明及显示位置设置

    先贴一下显示效果图,仅作参考: 代码如下: 1.自定义Dialog public class SelectDialog extends AlertDialog{public SelectDialog( ...

最新文章

  1. Android --- 怎么去掉小数后面不必要的 0
  2. 什么原因导致芯片短路_血压中的低压高是什么原因导致的?会导致什么疾病?...
  3. 大家说火箭进决赛的机会有多大?
  4. 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?...
  5. es查询index生成时间_Elasticsearch开始的第一步索引index
  6. 读书笔记-互联网思维必读10本书之一《免费》
  7. python高级特性:迭代器与生成器
  8. linux安装mysql 5.6.33
  9. a*算法流程图_光伏逆变器MPPT基本算法介绍李星硕
  10. 设计模式 -(1)简单工厂模式(创建型)
  11. Elastic-jobQuartz定时任务
  12. Listary 6双击Ctrl失效
  13. SIM卡电气特性详解
  14. python爬取晋江小说排行榜_【含代码】Python爬虫实战:爬取全站小说排行榜
  15. SSH连接时候出现 REMOTE HOST IDENTIFICATION HAS CHANGED
  16. 劈开迷雾,蘑菇街电商搜索架构及搜索排序实现
  17. 09组团队项目-Beta冲刺-3/5
  18. python拼接、剪辑视频
  19. gcc 优化选项 -O1 -O2 -O3 -Os 优先级,-fomit-frame-pointer(不积跬步无以至千里)
  20. Matlab—simulink—simscape学习指导

热门文章

  1. 了解CPU盒装与散装的区别
  2. 五十年前雨果就有了VR眼镜的技术理念
  3. 巨人的阴影之下:爱因斯坦的科学家妻子从未实现过梦想……
  4. 使用 技术可以把复杂的计算机网络简化,计算机网络试题及答案
  5. 价值投资者需要学习哪些知识?
  6. Ubuntu更换apt源之arm版
  7. ubuntu系统换源
  8. 格雷母线_格雷母线厂家_武汉索尔德产品种类齐全
  9. java HMACSHA1 加密解密
  10. HSV颜色空间及RGB转HSV公式