比如我想把dialog 设置在  屏幕的   200,150,这个点上,怎么设置?

解决方案 »

  1.   

    AlertDialog dlg = new AlertDialog.Builder(this).create();Window w=dlg.getWindow();
    WindowManager.LayoutParams lp =w.getAttributes();
    //显示位置
    lp.x=200;
    lp.y=150;
      

  2.   

    系统中所有对话框,默认布局方式都是居中显示,如果想自定义显示位置可以考虑如下方式:  ……  Window mWindow = dialog.getWindow();  WindowManager.LayoutParams lp = mWindow.getAttributes();  lp.x= xxx;  lp.y= xxx;  复制代码  缺省居中lp.x=0,lp.y=0  新坐标 x小于0左移,大于0右移;y小于0上移,大于0下移  @Override  protected void onDestroy() {  super.onDestroy();  android.os.Process.killProcess(android.os.Process.myPid());  }  public static String wrap(String str, int wrapLength, String newLineStr, boolean wrapLongWords) {  if (str == null) {  return null;  }  if (newLineStr == null) {  newLineStr = System.getProperty("line.separator");  }  if (wrapLength < 1) {  wrapLength = 1;  }  int inputLineLength = str.length();  int offset = 0;  StringBuffer wrappedLine = new StringBuffer(inputLineLength + 32);  while ((inputLineLength - offset) > wrapLength) {  if (str.charAt(offset) == ' ') {  offset++;  continue;  }  int spaceToWrapAt = str.lastIndexOf(' ', wrapLength + offset);  if (spaceToWrapAt >= offset) {  // normal case  wrappedLine.append(str.substring(offset, spaceToWrapAt));  wrappedLine.append(newLineStr);  offset = spaceToWrapAt + 1;  } else {  // really long word or URL  if (wrapLongWords) {  // wrap really long word one line at a time  wrappedLine.append(str.substring(offset, wrapLength + offset));  wrappedLine.append(newLineStr);  offset += wrapLength;  } else {  // do not wrap really long word, just extend beyond limit  spaceToWrapAt = str.indexOf(' ', wrapLength + offset);
      

  3.   

     if (spaceToWrapAt >= 0) {  wrappedLine.append(str.substring(offset, spaceToWrapAt));  wrappedLine.append(newLineStr);  offset = spaceToWrapAt + 1;  } else {  wrappedLine.append(str.substring(offset));  offset = inputLineLength;  }  }  }  }  // Whatever is left in line is short enough to just pass through  wrappedLine.append(str.substring(offset));  return wrappedLine.toString();  }
      

  4.   

    protected void setDialogAttributes(Dialog dlg, boolean right, int xpos, int ypos){
    try{
            Window win = dlg.getWindow();
            WindowManager.LayoutParams wl = win.getAttributes();
            if(right){
             wl.gravity = android.view.Gravity.RIGHT | android.view.Gravity.TOP;
            }else{
             wl.gravity = android.view.Gravity.LEFT | android.view.Gravity.TOP;
            }
            wl.x      = xpos;
            wl.y      = ypos;
            wl.height = 500;
            wl.flags  = WindowManager.LayoutParams.FLAG_DIM_BEHIND 
    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS ;
            wl.alpha = 1.0f;
            wl.dimAmount = 0.0f;
            win.setAttributes(wl);
    }
    catch(Exception e){
    Log.e(TAG, "setWinAttributes", e);
    }
    }