Добрый вечер!
Суть проблемы заключается в том что при выполнение этого кода:
float x = imageCell[5][5].getX();
float y = imageCell[5][5].getY();
int xx = Math.round(x);
int yy = Math.round(y);
textview.setText(String.valueOf(xx+" " + yy));
Что я делаю не так?
Пытаюсь получить координаты элемента ImageView на экране, но как бы я не делал всегда получаю значение ноль.
Полагаю, что Вы пытаетесь получить данное значение в методе onCreate(...) активити и вполне справедливо получаете ноль, так как во время выполнения данного метода виджеты еще не были отрисованы и все их числовые характеристики, связанные с расположением и размерами будут нулевыми.
Вышеприведенное утверждение легко проверить следующим образом:
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("LOG_TAG", "mImageView.getX(): " + mImageView.getX());
}
});
В данном случае, при нажатии на ImageView, Вы получите корректное значение.
Отследить окончание отрисовки View можно с помощью OnGlobalLayoutListener следующим образом:
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
private ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView) findViewById(R.id.image_view);
mOnGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Log.d("LOG_TAG", "mImageView.getX(): " + mImageView.getX());
mImageView.getViewTreeObserver().removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
};
mImageView.getViewTreeObserver().addOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости