вьюшка ещё не прорисовалась и по этому ноль, берите размер экранаtolik777 писал(а):Такой вопрос по примеру. Хочу сделать так, чтобы квадрат появлялся в центре экрана при запуске. Но метод getWidth() возвращает ноль.
Тащим нарисованный квадрат по экрану
Re: Тащим нарисованный квадрат по экрану
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Тащим нарисованный квадрат по экрану
Для того, чтобы в этом примере объект сам двигался (в случае, когда его не перетаскивают) - куда прописывать изменение координат?
onDraw и onTouchEvent, при отсутсвии касания экрана, естественно, не выполняются
onDraw и onTouchEvent, при отсутсвии касания экрана, естественно, не выполняются
Re: Тащим нарисованный квадрат по экрану
Ответ на мой предыдущий вопрос - просто создайте поток с постоянным инвалидейтом. т.е. вставьте в класс следующую строку:
Runnable r = new Runnable{ public void Run() {nvalidate()} };
Не бойтесь потоков, они сделаны неожиданно (для явы)) просто и логично!
После этого, в onDraw прописываем логику движения (т.е. изменение координат до достижения границ экрана).
Для того, чтобы в паузах между началом и концом нажатия не выполнялся инвалидейт (т.е. объект не дергался) - я лично использовал if с булевой переменной-флагом
PS На форум все забили, комент скорее для читателей статьи
Runnable r = new Runnable{ public void Run() {nvalidate()} };
Не бойтесь потоков, они сделаны неожиданно (для явы)) просто и логично!
После этого, в onDraw прописываем логику движения (т.е. изменение координат до достижения границ экрана).
Для того, чтобы в паузах между началом и концом нажатия не выполнялся инвалидейт (т.е. объект не дергался) - я лично использовал if с булевой переменной-флагом
PS На форум все забили, комент скорее для читателей статьи
Re: Тащим нарисованный квадрат по экрану
Спасибо от читателей! На один написанный пост 100 человек читающих