Как получить Центр Imageview, который является кругом - PullRequest
2 голосов
/ 14 июля 2011

Теперь у меня есть ImgeView, круг, и я хочу найти центральную точку этого круга, поэтому я попробовал следующий код, но он не работает

int[] location = new int[2];
            imageView.getLocationOnScreen(location);

int radius=imageView.getHeight()/2;
                    int[] center=new int[2];
                    center[0]=location[0]+radius;
                    center[1]=location[1]+radius;

так координаты, которые я получил по "местоположению", являются верхней точкой просмотра изображения или нет?

Пожалуйста, помогите мне, как получить центральную точку изображения.

Ответы [ 3 ]

10 голосов
/ 14 июля 2011

Я предположил ниже ситуацию:

Вы будете загружать ImageView (из xml или кода) и иметь ссылку на него в myImageView (скажем). Теперь вы хотите вычислить центр myImageView независимо от его положения на экране.

Если мое предположение верно, то, вероятно, ниже приведено решение, которое вы ищете:

    int centerXOnImage=myImageView.getWidth()/2;
    int centerYOnImage=myImageView.getHeight()/2;

    int centerXOfImageOnScreen=myImageView.getLeft()+centerXOnImage;
    int centerYOfImageOnScreen=myImageView.getTop()+centerYOnImage;
0 голосов
/ 19 сентября 2013

В дополнение к ответу Чандана, скажем, мы используем один и тот же код:

int centerXOnImage=myImageView.getWidth()/2;
int centerYOnImage=myImageView.getHeight()/2;

int centerXOfImageOnScreen=myImageView.getLeft()+centerXOnImage;
int centerYOfImageOnScreen=myImageView.getTop()+centerYOnImage;

, если ваш myImageView.getWidth() возвращает 0, вы можете внести небольшую модификацию:

myImageView.measure(0,0);
int centerXOnImage=myImageView.getMeasuredWidth()/2;
int centerYOnImage=myImageView.getMeasuredHeight()/2;

Обратите внимание, что вы можете сделать это после того, как myImageView будет создан в коде и добавлен в корневое представление.

0 голосов
/ 14 июля 2011

Вы можете получить координаты верхнего левого угла, используя:

ImageView iv = (ImageView)findViewById(R.id.image_view);
Rect rect = iv.getDrawable().getRect();
int xOffset = rect.left;
int yOffset = rect.top;

На основе высоты / 2 и ширины / 2 вы можете установить центр вашего ImageView.

...