zoukankan      html  css  js  c++  java
  • 如何设置对话框的宽度和高度

      1. AlertDialog.Builder dialog = new AlertDialog.Builder(this).setTitle(  
      2.          "title").setIcon(android.R.drawable.ic_dialog_alert).setMessage(  
      3.          "message").setPositiveButton("yes"new OnClickListener() {  
      4.      public void onClick(DialogInterface arg0, int arg1) {  
      5.            
      6.      }  
      7.  }).setNegativeButton("no",  
      8.          new OnClickListener() {  
      9.              public void onClick(DialogInterface arg0, int arg1) {  
      10.              }  
      11.          }).setCancelable(false);  
      12.       
      13.   /* 方法1: 
      14.   * 将对话框的大小按屏幕大小的百分比设置 
      15.   */  
      16.  WindowManager m = getWindowManager();  
      17.  Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用  
      18.  WindowManager.LayoutParams p = getWindow().getAttributes(); // 获取对话框当前的参数值  
      19.   p.height = (int) (d.getHeight() * 0.5); // 高度设置为屏幕的0.5  
      20.  p.width = (int) (d.getWidth() * 0.8); // 宽度设置为屏幕的0.8  
      21.  dialog.show().getWindow().setAttributes(p);  
      22.   
      23.   
      24.  /*  方法2: 
      25.   * 获取对话框的窗口对象及参数对象以修改对话框的布局设置, 
      26.   * 可以直接调用getWindow(),表示获得这个Activity的Window 
      27.   * 对象,这样这可以以同样的方式改变这个Activity的属性. 
      28.   */  
      29.  Window dialogWindow = dialog.show().getWindow();  
      30.  WindowManager.LayoutParams lp = dialogWindow.getAttributes();  
      31. dialogWindow.setGravity(CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);  
      32.   dialogWindow.setLayout(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
      33.  /* 
      34.   * lp.x与lp.y表示相对于原始位置的偏移. 
      35.   * 当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略. 
      36.   * 当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略. 
      37.   * 当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略. 
      38.   * 当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略. 
      39.   * 当参数值包含Gravity.CENTER_HORIZONTAL时 
      40.   * ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动. 
      41.   * 当参数值包含Gravity.CENTER_VERTICAL时 
      42.   * ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动. 
      43.   * gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | 
      44.   * Gravity.CENTER_VERTICAL. 
      45.   *  
      46.   * 本来setGravity的参数值为Gravity.LEFT | Gravity.TOP时对话框应出现在程序的左上角,但在 
      47.   * 我手机上测试时发现距左边与上边都有一小段距离,而且垂直坐标把程序标题栏也计算在内了, 
      48.   * Gravity.LEFT, Gravity.TOP, Gravity.BOTTOM与Gravity.RIGHT都是如此,据边界有一小段距离 
      49.   */  
      50.  lp.x = 100// 新位置X坐标  
      51.  lp.y = 100// 新位置Y坐标  
      52.  lp.width = 300// 宽度  
      53.  lp.height = 300// 高度  
      54.  lp.alpha = 0.7f; // 透明度  
      55.   
      56.  // 当Window的Attributes改变时系统会调用此函数,可以直接调用以应用上面对窗口参数的更改,也可以用setAttributes  
      57.  // dialog.onWindowAttributesChanged(lp);  
      58.  dialogWindow.setAttributes(lp); 
  • 相关阅读:
    【服务后端】Django 返回的QuerySet序列化
    【服务后端】Django的多表数据查询
    【微信开发】2、全局Token获取
    【微信开发】1、服务器响应,与微信服务器握手
    【服务后端】Python序列化对象为Json方法
    【服务后端】Django对比查询结果中的id时报错'dict' object has no attribute 'id'
    【网页前端】WeX5架构下,WinDialog子窗口1传递参数给主窗口关闭,再弹出子窗口2失败
    【系统运维】CentOS系统MySql,Tomcat和Django自启动
    【网络开发】WeX5的Ajax和Django服务器json接口对接跨域问题解决
    21.1
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/3730483.html
Copyright © 2011-2022 走看看