|
Как определить размеры
|
|||
---|---|---|---|
#18+
Доброго времени суток всем! Начал новое приложение, нагородил лайаут-файл для главного активити, внутри есть виджет ImageView. Хотел в методе OnCreate активити определить его размеры для дальнейшего рисования с масштабированием, но не тут-то было - на этом этапе все размеры 0. Обработку какого события надо прикрутить, чтобы это решить? С уважением, Валера. P.S.: При создании другого приложения, я в качестве основного содержимого главного активити устанавливал не лайаут-разметку, а класс, наследованный от View, вот там я мог заюзать событие onSizeChanged, а как сделать тут не могу придумать и в инете решения не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 11:49 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
Sp999Хотел в методе OnCreate активити определить его размеры для дальнейшего рисования с масштабированием Размер задаётся в LayoutParams. Под него же всё и масштабируется. А вообще - мало того, что у гуглов получилась ужасная система, но и документирована она просто безобразно. Поэтому вам придётся ещё много чего копать и узнавать, просто для того, что бы полноценно контролировать поведение контролов на экране. Изучите пока LayoutParams, потом жизнь сама вам подскажет, что ещё изучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 16:10 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
Sp999Доброго времени суток всем! Начал новое приложение, нагородил лайаут-файл для главного активити, внутри есть виджет ImageView. Хотел в методе OnCreate активити определить его размеры для дальнейшего рисования с масштабированием, но не тут-то было - на этом этапе все размеры 0. Обработку какого события надо прикрутить, чтобы это решить? С уважением, Валера. P.S.: При создании другого приложения, я в качестве основного содержимого главного активити устанавливал не лайаут-разметку, а класс, наследованный от View, вот там я мог заюзать событие onSizeChanged, а как сделать тут не могу придумать и в инете решения не нашел. Размеры можешь определить так в oncreate Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2018, 20:59 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
A Serious Man, спасибо огромное! А не мог бы ты еще объяснить, как оно работает? Вроде, получается, что во время onCreate компонент уже есть, но размеров не имеет. С помощью post ставим Runnable в очередь сообщений. Интересует, в какой именно момент оно достается из очереди и выполняется (на тот момент у компонента уже определены конкретные размеры). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 09:17 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
Sp999A Serious Man, спасибо огромное! А не мог бы ты еще объяснить, как оно работает? Вроде, получается, что во время onCreate компонент уже есть, но размеров не имеет. С помощью post ставим Runnable в очередь сообщений. Интересует, в какой именно момент оно достается из очереди и выполняется (на тот момент у компонента уже определены конкретные размеры). Когда oncreate завершится, будут сформированы вью, по окончанию запустится этот тред. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 10:45 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
A Serious ManРазмеры можешь определить так в oncreate это какой-то жуткий костыль, здесь ты закладываешься на то, что потоковый код выполнится позже полной инициализации и отрисовки view, что мягко говоря спекуляций - однажды это может не сработать если уж нам кровь-из-носу нужен размер View, в чем я сильно не уверен, то это можно сделать с помощью GlobalLayoutListener Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2018, 12:19 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
chpasha, А откуда этот код запускать? и каков принцип его работы? С уважением, Валера. P.S.: Кстати, всех с профессиональным праздником! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 07:08 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
Sp999А откуда этот код запускать? ну ты же хотел в onCreate, там и запускай. хотя пока ты не объяснишь внятно зачем тебе нужно знать размеры, есть ненулевая вероятность того, что ты не в том месте копаешь. Sp999и каков принцип его работы? если не вдаваться подробности, то принцип в том что это событие кидается тогда, когда View уже определился с размерами и расположился в содержащем его контейнере - в этот момент уже можно спрашивать его о размерах ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2018, 12:23 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
chpashaA Serious ManРазмеры можешь определить так в oncreate это какой-то жуткий костыль, здесь ты закладываешься на то, что потоковый код выполнится позже полной инициализации и отрисовки view, что мягко говоря спекуляций - однажды это может не сработать если уж нам кровь-из-носу нужен размер View, в чем я сильно не уверен, то это можно сделать с помощью GlobalLayoutListener Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Мое работает, проверено и не один раз! У тебя какая-то перенахлобученность, такое не использовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 10:04 |
|
Как определить размеры
|
|||
---|---|---|---|
#18+
A Serious ManМое работает, проверено и не один раз верю, но я объяснил почему это чисто случайный эффект - ты просто ставишь Runnable в очередь сообщений и надеешься, что оно сработает позже чем инициализация View A Serious ManУ тебя какая-то перенахлобученность не знал, что у нас тут соревнования. единственный известный мне надежный способ именно таков, увы ему не победить на конкурсе лаконичности ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2018, 10:45 |
|
|
start [/forum/topic.php?fid=13&msg=39701316&tid=1330851]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 292ms |
0 / 0 |