安卓自定义对话框(位置和大小)

来源:互联网 发布:矩阵a与b相似,则a与b 编辑:程序博客网 时间:2024/05/15 04:05

安卓自定义对话框(位置和大小)


//自定义对话框private void showCustomDialog(String msgStr){try {//使用AlterDialogLinearLayout view = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.dlg_layout, null);final TextView msg = (TextView) view.findViewById(R.id.dlg_msg);final TextView cancel = (TextView) view.findViewById(R.id.dlg_cancel);final TextView confirm = (TextView) view.findViewById(R.id.dlg_confirm);msg.setText(msgStr);AlertDialog.Builder builder = new AlertDialog.Builder(context);final AlertDialog dialog = builder.create();dialog.setCancelable(false);dialog.setCanceledOnTouchOutside(false);dialog.show();Window window = dialog.getWindow();//设置显示位置WindowManager.LayoutParams lp = window.getAttributes();//不设置lp.width 和lp.height,对话框大小由布局决定//lp.width = 525; //大小//lp.height =330;//自定义位置lp.x = 30; lp.y = 30;lp.gravity = Gravity.LEFT | Gravity.TOP;//不设置这个时,lp.x和lp.y无效    //window.setGravity(Gravity.CENTER);//居中显示window.setAttributes(lp);window.setContentView(view);final Dialog dialog2 = dialog;cancel.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {try {if(dialog2 != null){dialog2.dismiss();}} catch (Exception e) {e.printStackTrace();}}});confirm.setOnClickListener(new View.OnClickListener() {public void onClick(View arg0) {try{Toast.makeText(DownLoadActivity.this, "确认", Toast.LENGTH_SHORT).show();if(dialog2 != null){dialog2.dismiss();}} catch (Exception e) {e.printStackTrace();}}});} catch (Exception e) {e.printStackTrace();}}lp.x的英文注释:X position for this window. With the default gravity it is ignored. When using Gravity.LEFT or Gravity.START or Gravity.RIGHT or Gravity.END it provides an offset from the given edge由With the default gravity it is ignored可知,当使用对话框默认的Gravity时,lp.x和lp.y设置了也无效。注意:lp.x与lp.y表示相对于原始位置的偏移.          当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.          当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.          当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.          当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.          当参数值包含Gravity.CENTER_HORIZONTAL时,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.          当参数值包含Gravity.CENTER_VERTICAL时,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.          gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL.                  

0 0
原创粉丝点击