纯代码实现对话框

对话框自定义:相对布局的java代码实现
创建AlertDiaglog

Window window = dlg.getWindow()

创建布局,代码为相对布局

载入布局,载入相关空间,设置相关控件的位置

代码如下

        int bgImageViewID = 10;
        int iconImageViewID = 11;
        int textViewID = 12; int buttonOkID = 13; int buttonCancelID = 14; int srcImageViewId = 15; final AlertDialog dlg = new AlertDialog.Builder(this).create(); dlg.show(); Window window = dlg.getWindow(); // 主要就是在这里实现这种效果的. RelativeLayout rLayout = new RelativeLayout(this); //设置背景 ImageView bg_iv = new ImageView(this); bg_iv.setId(bgImageViewID); bg_iv.setImageResource(R.drawable.bg2); RelativeLayout.LayoutParams bgRelativeParams_iv = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); bgRelativeParams_iv.addRule(RelativeLayout.CENTER_HORIZONTAL); rLayout.addView(bg_iv, bgRelativeParams_iv); ImageView icon_iv = new ImageView(this); icon_iv.setId(iconImageViewID); icon_iv.setImageResource(R.drawable.egame_logo_icon); RelativeLayout.LayoutParams iconRelativeParams_iv = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); iconRelativeParams_iv.addRule(RelativeLayout.ALIGN_LEFT,bgImageViewID); iconRelativeParams_iv.addRule(RelativeLayout.ALIGN_TOP,bgImageViewID); rLayout.addView(icon_iv, iconRelativeParams_iv); TextView tv = new TextView(this); tv.setId(textViewID); tv.setText("XXXXXX"); RelativeLayout.LayoutParams RelativeParams_tv = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); RelativeParams_tv.addRule(RelativeLayout.CENTER_HORIZONTAL,iconImageViewID); rLayout.addView(tv, RelativeParams_tv); ImageView src_iv = new ImageView(this); src_iv.setId(srcImageViewId); src_iv.setBackgroundResource(R.drawable.app_icon); RelativeLayout.LayoutParams srcRelativeParams_iv = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); srcRelativeParams_iv.addRule(RelativeLayout.CENTER_IN_PARENT,bgImageViewID); //RelativeParams_tv.addRule(RelativeLayout.ALIGN_TOP,bgImageViewID);  rLayout.addView(src_iv, srcRelativeParams_iv); Button btn_ok = new Button(this); btn_ok.setId(buttonOkID); btn_ok.setBackgroundResource(R.drawable.submit); RelativeLayout.LayoutParams relativeParams_btn_ok = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); //RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)iv.getLayoutParams();  relativeParams_btn_ok.addRule(RelativeLayout.ALIGN_BOTTOM,bgImageViewID); relativeParams_btn_ok.addRule(RelativeLayout.ALIGN_LEFT,bgImageViewID); rLayout.addView(btn_ok, relativeParams_btn_ok); Button btn_cancel = new Button(this); btn_cancel.setId(buttonCancelID); btn_cancel.setBackgroundResource(R.drawable.cancel); RelativeLayout.LayoutParams relativeParams_btn_cancel = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); relativeParams_btn_cancel.addRule(RelativeLayout.ALIGN_BOTTOM,bgImageViewID); relativeParams_btn_cancel.addRule(RelativeLayout.ALIGN_RIGHT,bgImageViewID);; rLayout.addView(btn_cancel, relativeParams_btn_cancel); //window.setContentView(R.layout.diag);  window.setContentView(rLayout); // 为确认按钮添加事件,执行退出应用操作 btn_ok.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { } }); // 关闭alert对话框架 btn_cancel.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { dlg.cancel(); } });

转载于:https://www.cnblogs.com/qianqiuyue/p/3810255.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值