Show AlertDialog in any position of the screen

gypsicoder picture gypsicoder · Mar 29, 2011 · Viewed 84.2k times · Source

When we show an AlertDialog in android it shows in the center of the screen. Is there any way to change the position?

Answer

gypsicoder picture gypsicoder · May 18, 2011

After searching in various post I have found the solution.

The code is posted below:

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();

Here x position's value is pixels from left to right. For y position value is from bottom to top.