Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中调整对话框相对于设备的特定位置_Android_Dialog - Fatal编程技术网

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

如何在android中调整对话框相对于设备的特定位置,android,dialog,Android,Dialog,我有一个安卓应用程序,其中有一个对话框,点击按钮就会打开。在这个应用程序中,我想将对话框的位置设置在按钮下方。当我使用verticalMargin时,当我在多个屏幕分辨率不同的设备中进行测试时,位置相对于设备会发生变化。我需要的是,无论屏幕大小如何,对话框应始终显示在按钮下方。在各种帖子中搜索后,我找到了解决方案 代码发布如下: private CharSequence[] items = {"Set as Ringtone", "Set as Alarm"}; AlertDialog.

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

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

代码发布如下:

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位置的值是从下到上的。

我已经创建了对话框,它工作得很好。现在我需要的只是设置对话框的位置。我试着找出按钮从总屏幕高度中所占的高度百分比,并使用该比率来设置对话框边距。你对实现这一点有什么想法吗ans u可以设置wmlp.x=100//x位置wmlp.y=100//y位置是你在看这个x,y位置,根据多个设备的屏幕大小动态显示这不是我在找的:(那么你想解释什么,请再次检查我的问题