博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android第三十三期 - Dialog的应用
阅读量:7116 次
发布时间:2019-06-28

本文共 3705 字,大约阅读时间需要 12 分钟。

    今天遇到一个大难题哦,不过有大牛一眼就瞄出来了,然后就解决了,AlertDialog和Dialog自定义后圆角的处理,如果你跟我一样没有看到这些细节的话就栽了,用AlertDialog不能使得圆角背景透明化,所以要用Dialog处理才行,也就是下面的方法。

    Dialog:

private static Dialog mDialog;	// 加载gridview中的item的xml方法	public static View getView(Context context, int layoutId) {		LayoutInflater inflater = (LayoutInflater) context				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);		View layout = inflater.inflate(layoutId, null);		return layout;	}/**	 * 显示自定义对话框	 * 	 * @param context	 * @param message	 * @param listener	 */	public static void showDialog(final Context context, String message,			final IAlertDialogButtonListener listener) {		View dialogView = null;		// Dialog.Builder builder = new Builder(context,		// R.style.Theme_Transparent);		mDialog = new Dialog(context, R.style.Theme_Transparent);		dialogView = getView(context, R.layout.dialog_view);		Button btn_ok = (Button) dialogView.findViewById(R.id.btn_ok);		Button btn_cancel = (Button) dialogView.findViewById(R.id.btn_cancel);		TextView txt_dailog_message = (TextView) dialogView				.findViewById(R.id.txt_dailog_message);		txt_dailog_message.setText(message);		btn_ok.setOnClickListener(new View.OnClickListener() {			@Override			public void onClick(View arg0) {				// 关闭dialog				if (mDialog != null) {					mDialog.cancel();				}				// 事件回调				if (listener != null) {					listener.onClick();				}				// 播放音效				// MyPlayer.playTone(context, MyPlayer.INDEX_STONE_ENTER);			}		});		btn_cancel.setOnClickListener(new View.OnClickListener() {			@Override			public void onClick(View arg0) {				// 关闭dialog				if (mDialog != null) {					mDialog.cancel();				}				// 播放音效				// MyPlayer.playTone(context, MyPlayer.INDEX_STONE_CANCEL);			}		});		// 为dialog设置View		// builder.setView(dialogView);		mDialog.setContentView(dialogView);		// mDialog = builder.create();		mDialog.show();	}}

    AlertDialog:

/**	 * 显示自定义对话框	 * 	 * @param context	 * @param message	 * @param listener	 */	public static void showDialog(final Context context, String message,			final IAlertDialogButtonListener listener) {		View dialogView = null;		AlertDialog.Builder builder = new Builder(context,				R.style.Theme_Transparent);		dialogView = getView(context, R.layout.dialog_view);		ImageButton btn_ok = (ImageButton) dialogView.findViewById(R.id.btn_ok);		ImageButton btn_cancel = (ImageButton) dialogView				.findViewById(R.id.btn_cancel);		TextView txt_dailog_message = (TextView) dialogView				.findViewById(R.id.txt_dailog_message);		txt_dailog_message.setText(message);		btn_ok.setOnClickListener(new View.OnClickListener() {			@Override			public void onClick(View arg0) {				// 关闭dialog				if (mAlertDialog != null) {					mAlertDialog.cancel();				}				// 事件回调				if (listener != null) {					listener.onClick();				}				// 播放音效				MyPlayer.playTone(context, MyPlayer.INDEX_STONE_ENTER);			}		});		btn_cancel.setOnClickListener(new View.OnClickListener() {			@Override			public void onClick(View arg0) {				// 关闭dialog				if (mAlertDialog != null) {					mAlertDialog.cancel();				}				// 播放音效				MyPlayer.playTone(context, MyPlayer.INDEX_STONE_CANCEL);			}		});		// 为dialog设置View		builder.setView(dialogView);		mAlertDialog = builder.create();		mAlertDialog.show();	}

    af_dialog_background圆角:

    
    

    dialog_view:

    
        
        
            
                
        
        
    

    最后是style:

        
@null        
true        
true        
true        
@android:color/transparent        
@android:color/transparent        
true        
0.6    

    谢谢hongyang大神~~开心挣钱每一天

转载地址:http://umyel.baihongyu.com/

你可能感兴趣的文章
postgreSQL 9.1 的安装、基本配置、简单使用
查看>>
JavaScript日期时间对象的创建与使用(三)
查看>>
PHP编程效率的20个要点
查看>>
HTC A510C屏幕失灵补丁
查看>>
mysql主从数据不一致问题解决
查看>>
go 入门学习笔记之 条件判断 if switch (七)
查看>>
Linux下清空用户登录记录和命令历史的方法
查看>>
python 函数
查看>>
Visual Sudio 复制窗体文件
查看>>
实例变量并不安全(java)
查看>>
修改系统文件(cookie、桌面、我的文档)位置
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
2012开源项目计划-WPF企业级应用整合平台
查看>>
边缘检测(3)Sobel边缘算子
查看>>
C语言字符串和数字转换函数大全
查看>>
InfluxDB删除数据
查看>>
开篇记录
查看>>
我的友情链接
查看>>
debian6 Redis+phpredis安装
查看>>