目录

一、自定义Dialog

二、Dialog添加圆角


一、自定义Dialog

自定义Dialog实现过程

本文的自定义dialog是在fragment中实现的,在Activity里面应该大同小异了。

android studio其实自带了很多种dialog

下面这个图是引用一位大佬的!

这几天在学习自定义的Dialog的使用,一开始以为很难,因为没有接触过,虽然自己使用过AlertDialog和ProgressDialog,但是图中的一些东西我并不知道是可以用自定义Dialog实现的。

好伐啦,接下来就开始介绍Dialog的自定义使用吧!

首先,准备好自定义布局:

比如说,我需要一个这样的东西:点击某处出现一个列表供你选择,比如拍照、相册和取消。

自定义,那肯定是需要自己准备布局文件的啦!

xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><Buttonandroid:id="@+id/take_photo_btn"android:text="相机"android:layout_width="match_parent"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/select_photo_btn"android:text="相册"android:layout_width="match_parent"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/getOut"android:text="取消"android:layout_width="match_parent"android:layout_height="wrap_content"/>
</LinearLayout>

简简单单的一个线性布局+三个按钮

其次,就是使用Dialog。

private Dialog dialogPhoto;
引入布局 R.layout.dialog_photo_select即xml文件 第二个参数和第三个参数填false就行。
View photoView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_photo_select,null,false);
最重要的一点:控件的绑定
因为后面需要实现弹出来的dialog的点击事件,那么就需要绑定控件,而绑定控件时要注意下面红色处代码。
takePhoto = (Button) photoView.findViewById(R.id.take_photo_btn);
fromPhoto = (Button)  photoView.findViewById(R.id.select_photo_btn);
backPhoto = (Button) photoView.findViewById(R.id.getOut);
dialogPhoto = new AlertDialog.Builder(getContext()).setView(photoView).create();
dialogPhoto.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));//设置dialog背景透明
dialogPhoto.setCancelable(false);//点击dialog其他地方不能取消dialog
dialogPhoto.getWindow().setLayout(getResources().getDisplayMetrics().widthPixels * 3/4, LinearLayout.LayoutParams.WRAP_CONTENT);//设置对话框大小

最后,Dialog的点击事件。

既然你已经可以实现点击某处弹出一个Dialog出来,那么你肯定是需要对这个做一些处理的,即对上面的三个按钮实现点击事件。

backPhoto.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {dialogPhoto.dismiss();}
});

另外两个按钮不多说了,举一反三。

实现效果图

二、Dialog添加圆角

如何自定义dialog圆角呢,上面的图片看不出效果也没有设置圆角,因为只有三个按钮,下面将会有不设置和设置圆角以后的效果图。

首先新建drawable文件

drawable/bg_dialog_transfer(名字你自己随意)

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

然后就是去你自定义dialog的布局文件里面去引用上面这个文件

这一步设置了以后,千万千万注意要设置自定义的dialog的背景为透明的,否则圆角效果不会出现

代码中的dialog填你自己的自定义dialog名字即可。

                Window window = dialogName.getWindow();window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));

设置完成看看效果图!

未设置圆角时

设置圆角后 

是不是美观多了

Android自定义Dialog+圆角处理相关推荐

  1. android如何自定义dialog,Android—自定义Dialog

    在 Android 日常的开发中,Dialog 使用是比较广泛的.无论是提示一个提示语,还是确认信息,还是有一定交互的(弹出验证码,输入账号密码登录等等)对话框. 而我们去看一下原生的对话框,虽然随着 ...

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

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

  3. android 自定义透明 等待 dialog,Android自定义Dialog内部透明、外部遮罩效果

    Android自定义Dialog内部透明.外部遮罩效果 发布时间:2020-09-09 03:01:41 来源:脚本之家 阅读:117 作者:zst1303939801 本文实例为大家分享了Andro ...

  4. android dialog 消失动画,android 自定义dialog弹出和消失缩放动画

    本文转自:android 自定义dialog,窗口动画 Java代码: package com.sunxu.org.IndividualityDialog; import Android.app.Ac ...

  5. Android自定义拍照上传界面,Android自定义dialog——设置头像(拍照,相册)

    Android自定义dialog--设置头像(拍照,相册) 需求场景:个人信息设置,点击头像,在界面上弹出一个弹框,用户选择"拍照"/"从图库选择",选择照片后 ...

  6. android 自定义dialog样式,Android 自定义dialog类

    首先定制style样式 styles.xml 加入自定义样式 @null true true true @color/transparent @color/transparent true 0.6 在 ...

  7. android自定义dialog对话框,android的自定义dialog对话框实现

    Android自定义dialog对话框 一:自定义dialog 如何填充布局 ①自定MyDialog类,在类里关联布局 public class MyDialog extends AlertDialo ...

  8. Android弹出自定义Dialog,android自定义Dialog实现底部弹窗

    android自定义Dialog实现底部弹窗 拿到这个需求,很多人都是直接想用popWindow 实现,但是这样的效果我们完全可以根据系统的Dialog 自定义一个. AlertDialog.Buil ...

  9. android自定义dialog不显示,有关问题解决之Android自定义Dialog无法dismiss

    问题解决之Android自定义Dialog无法dismiss 场景: 点击ListView的一个Item,弹出自定义Dialog.在初始化Dialog时,将一个OnClickListener作为参数传 ...

最新文章

  1. MFC最小化到系统托盘
  2. 用 Jackson 来处理 JSON
  3. python list分成多个_Python3 把一个列表按指定数目分成多个列表的方式
  4. 【译】x86程序员手册37-第10章 初始化
  5. CIO们对数据中心虚拟化心存的六大疑虑
  6. 年度旗舰机广告片遭电视台泄露 三星:我有句话不知当讲不当讲
  7. python 通讯录系统_Python下的通讯录
  8. 【1】嵌入式TCP/IP协议——————Art-Net调试工具 DMX-Workshop
  9. 【天池大数据竞赛】“数智教育”2019数据可视化竞赛亚军方案总结
  10. c语言万年历怎么加节日,C语言万年历
  11. [2017-07-27] 依图科技电话面试
  12. 星星之火-9:详解信道特性与奈奎斯特定理和香农定理
  13. (3)odroid xu4/3 SD卡的ubuntu系统烧入
  14. 英语期末复习——大学英语词汇解析
  15. 程序员思维僵化_僵化趋势
  16. RJS Reference
  17. 论文笔记:PSGAN
  18. Java编程输入学员小明3门课程成绩,编写程序实现
  19. PHP微信公众开发笔记(二)
  20. 单目标跟踪通过CAM绘制heatmap图像(以SiamCAR为例)

热门文章

  1. python中步长的使用方法
  2. 鸿蒙os页面格式简介
  3. ffmpeg关于dts和pts收集
  4. 2款好用强大的卸载软件(geek.exe,IObit Uninstaller.exe)
  5. Flash交互课件模版
  6. 睿泽物联 Cat.1单灯控制器打造5G智慧灯杆新应用
  7. Hawaiki Keyer 4 Mac(AE/FCPX抠图遮罩插件) v4.5破解版
  8. Android问题笔记 - AutoSize的Toast失效
  9. uniapp 微信小程序 点击按钮实现复制功能
  10. 美工给的html怎么加数据,如何快速完成美工HTML和DRUPAL数据的整合?