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

话说之前写过一遍中常见的几种的介绍和基本用法,但是没有讲到实际项目中最常用到的自定义 。正好,马上项目要添加新模块,看到里面有用到自定义部分,于是乎趁着最近闲于时间就提前研究下这块,刚好今天分享一下 。本来是打算写两篇博客的,后来想想内容也不多,就合成一个写了 。两种自定义的用到的方式和定义写法都不同 。先来看看效果图吧:

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

文章插图
@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.button:mDialog = DialogUtil.ShowBabyShowSendDialog(MainActivity.this,this,this);mDialog.show();break;case R.id.iv_send_picture:Toast.makeText(this,"点击了图片",Toast.LENGTH_SHORT).show();mDialog.dismiss();break;case R.id.iv_send_vedio:Toast.makeText(this,"点击了视频",Toast.LENGTH_SHORT).show();mDialog.dismiss();break;
【自定义布局Dialog 自定义dialog右上角带叉号的dialog 点击右上角】由于是一个所以这里我们三个参数都传的的this,当然为了规范期间应该都传.this,我这里为了方便只写了一个 。
2.
下来是第二种也就是右上角有个叉号,点击叉号关闭弹出框,其实本人在这里浪费的时间是上面的好几倍 。下来一起来看代码
布局文件:

这里的布局文件代码都是经过优化后删除了一些不必要的控件和布局嵌套 。大概说一下 整体是在一个里面,右上角的叉号设置属性
:ght=”true”
:p=”true”
自定义布局Dialog 自定义dialog右上角带叉号的dialog 点击右上角

文章插图
然后在利用 :=”12dp”去微调就可以 。
这里要注意层级关系,叉号和是平级的,先是最底层,然后在它上一层,最上面层也就是叉号在的右上角 。
然后在自定义个类去继承
package nan.dialogview;import android.app.Dialog;import android.content.Context;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.annotation.StyleRes;import android.view.View;import android.widget.ImageView;/*** Created by NanFeiLong on 2017/4/16.*/public class MyCloseDialog extends Dialog implements View.OnClickListener{private ImageView img_back;privateContext mContext;public MyCloseDialog(@NonNull Context context, @StyleRes int themeResId) {super(context, themeResId);this.mContext = context;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.dialog_closeicon_layout);img_back=(ImageView) findViewById(R.id.close);img_back.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.close:MyCloseDialog.this.dismiss();break;default:break;}}}
这里只给叉号了一个点击事件,一般不点击叉号的话点击图片会跳转到其他地方,也同理可以添加点击事件 。最后在中调用: