如何在android中相对于设备的特定位置调整对话框的位置

时间:2014-03-21 10:45:36

标签: android dialog

我有一个Android应用程序,其中有一个对话框,由于单击按钮而打开。在此,我想设置按钮下方对话框的位置。当我使用verticalMargin时,当我在具有不同屏幕分辨率的多个设备中进行测试时,相对于设备的位置变化。我需要的是,无论屏幕大小如何,对话框应始终显示在按钮下方。

1 个答案:

答案 0 :(得分:2)

在各种帖子中搜索后,我找到了解决方案。

代码发布在下面:

private CharSequence[] items = {"Set as Ringtone", "Set as Alarm"};
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {

            if(item == 0) {

            } else if(item == 1) {

            } else if(item == 2) {

            }
        }
    });

     AlertDialog dialog = builder.create();
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
     WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();

 wmlp.gravity = Gravity.TOP | Gravity.LEFT;
 wmlp.x = 100;   //x position
 wmlp.y = 100;   //y position



dialog.show();

此处x位置的值是从左到右的像素。对于y位置值是从下到上。