Как получить кнопку левого и правого углового положения на экране? - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь получить позицию просмотра (правая верхняя угловая позиция и левая нижняя угловая позиция) и отображать пользовательский диалог справа или слева от вида, но я не получаю точную позицию обзора. Это мой код

    int x=view.getLeft()+  (view.getHeight()*4);
    int y= view.getBottom()+(view.getWidth()*2);
    showDialog(x,y,Gravity.TOP,Gravity.LEFT);`  

    public void showDialog(int x, int y,int gravity_y,int gravity_x){
    final Dialog dialog  = new Dialog(this, R.style.ActivityDialog);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
    dialog.setContentView(R.layout.cofirm_sell);
    dialog.setCanceledOnTouchOutside(false);
    WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();
    dialog.getWindow().getAttributes().windowAnimations=R.style.DialogTheme;
    wmlp.gravity = gravity_y | gravity_x;
    wmlp.x = x;
    wmlp.y = y;
    ImageButton close=(ImageButton)dialog.findViewById(R.id.close);
    close.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dialog.dismiss();
        }
    });
    dialog.show();

}

Я хочу это

enter image description here

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

Попробуйте

int[] location = new int[2];
view.getLocationOnScreen(location);
int x1=location[0]-(view.getWidth());
int y1= location[1]-(view.getHeight());
0 голосов
/ 27 мая 2019

Благодаря @Sree, в Котлине:

val location = IntArray(2)
view.getLocationInWindow(location)

val left = location[0]
val right = left + view.width
val top = location[1]
val bottom = top + view.height
0 голосов
/ 05 июля 2018

Проверьте это:

    int[] outLocation = new int[2];
    view.getLocationOnScreen(outLocation);
    Rect rect = new Rect(
            outLocation[0],
            outLocation[1],
            outLocation[0] + view.getWidth(),
            outLocation[1] + view.getHeight());
    //right upper corner rect.right,rect.top 
    //left bottom corner rect.left,rect.bottom
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...