本文共 2279 字,大约阅读时间需要 7 分钟。
做Android应用中,最缺少不了的就是自定义Dialog,对于系统默认提供的Dialog样式,一般都不复合我们应用的样式。
自定义Dialog需要3步骤即可: 1、主要的重写Dialog的Java类 2、自定义布局文件、并设置Dialog Theme,在style.xml文件中加一个即可 3、使用方法一、创建CustomPopDialog2.java类
import android.app.Dialog;import android.content.Context;import android.graphics.Bitmap;import android.view.LayoutInflater;import android.view.View;import android.view.WindowManager.LayoutParams;import android.widget.ImageView;/** * 该自定义Dialog应用在:弹出框居中显示图片,点击其他区域自动关闭Dialog * * @author SHANHY(365384722@QQ.COM) * @date 2015年12月4日 */public class CustomPopDialog2 extends Dialog { public CustomPopDialog2(Context context) { super(context); } public CustomPopDialog2(Context context, int theme) { super(context, theme); } public static class Builder { private Context context; private Bitmap image; public Builder(Context context) { this.context = context; } public Bitmap getImage() { return image; } public void setImage(Bitmap image) { this.image = image; } public CustomPopDialog2 create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); final CustomPopDialog2 dialog = new CustomPopDialog2(context,R.style.Dialog); View layout = inflater.inflate(R.layout.dialog_share_qrcode, null); dialog.addContentView(layout, new LayoutParams( android.view.ViewGroup.LayoutParams.WRAP_CONTENT , android.view.ViewGroup.LayoutParams.WRAP_CONTENT)); dialog.setContentView(layout); ImageView img = (ImageView)layout.findViewById(R.id.img_qrcode); img.setImageBitmap(getImage()); return dialog; } }}
这里简单说明下,我们自定义Dialog需要准备一个自己的View布局文件,主要关注create()方法即可,本例中就是直接显示一个图片。
二、自定义View的布局文件、并在style.xml中添加theme
三、使用自定义的Dialog
Bitmap bitmap = xxxxx;// 这里是获取图片Bitmap,也可以传入其他参数到Dialog中 CustomPopDialog2.Builder dialogBuild = new CustomPopDialog2.Builder(context); dialogBuild.setImage(bitmap); CustomPopDialog2 dialog = dialogBuild.create(); dialog.setCanceledOnTouchOutside(true);// 点击外部区域关闭 dialog.show();
最终效果图: