Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2015, 11:09   #1
sinestro
Пользователь
 
Регистрация: 24.02.2012
Сообщений: 88
По умолчанию размер элемента после setContentView в android

Я пытаюсь получил размеры элемента после вызова функции setContentView(). Размеры получаю через view.getHeight(). Но функция почему-то возвращает 0. Но если вызвать view.getHeight() в другой функции, то размеры возвращаются нормальные. как с этим бороться?
Код:
    protected void onButtonClick(View v) {
        setContentView(R.layout.startpage_layout);
        Gallery gallery = (Gallery) findViewById(R.id.pictoGallery);
        ImageAdapter ia = new ImageAdapter(this,images,gallery.getHeight(),gallery.getHeight());
        gallery.setAdapter(ia);
sinestro вне форума Ответить с цитированием
Старый 16.06.2015, 11:29   #2
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Попробуйте вызов методов
Код:
getMeasuredHeight();
getMeasuredWidth();
koljsch вне форума Ответить с цитированием
Старый 16.06.2015, 13:38   #3
sinestro
Пользователь
 
Регистрация: 24.02.2012
Сообщений: 88
По умолчанию

не работает
sinestro вне форума Ответить с цитированием
Старый 16.06.2015, 14:42   #4
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Залейте проект, посмотрю
koljsch вне форума Ответить с цитированием
Старый 16.06.2015, 15:44   #5
sinestro
Пользователь
 
Регистрация: 24.02.2012
Сообщений: 88
По умолчанию

когда запустите - потыкайте кнопки влево-вправо. переключения между экранами - 2 кнопочки справа. загрузить на форум не получилось, поэтому залил на файлообменник http://rghost.ru/8MWYBt4Tf

Последний раз редактировалось sinestro; 16.06.2015 в 15:46.
sinestro вне форума Ответить с цитированием
Старый 16.06.2015, 17:24   #6
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Все работает.
Нужно изначально у Вас вызвать в onCreate метод menuPictoModeButtonClick или initializeCategory, иначе падает приложение после нажатия боковых кнопок.
Далее после этого можно уже в initializeCategory получать возвращаемые значения метода getMeasuredHeight().
У меня в лог вполне удачно скидывает цифру 71.

P.S. и на будущее, скидывайте проект без Gradle и другого мусора, просто исходники с манифестом.
Изображения
Тип файла: jpg help.jpg (124.4 Кб, 139 просмотров)
koljsch вне форума Ответить с цитированием
Старый 16.06.2015, 18:04   #7
sinestro
Пользователь
 
Регистрация: 24.02.2012
Сообщений: 88
По умолчанию

или я дурак, или лыжи не едут ))
Изображения
Тип файла: jpg Безымянный.jpg (44.8 Кб, 134 просмотров)
sinestro вне форума Ответить с цитированием
Старый 16.06.2015, 18:20   #8
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Честно, даже не знаю.
Может изображение не успевает подгружаться?
Попробуйте этот код, писал по памяти, могут быть ошибки, но помочь должно:
Код:
int finalHeight, finalWidth;
        final Gallery gallery = (Gallery) findViewById(R.id.pictoGallery);;
        ViewTreeObserver vto = gallery.getViewTreeObserver();
        vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
            public boolean onPreDraw() {
                gallery.getViewTreeObserver().removeOnPreDrawListener(this);
                finalHeight = gallery.getMeasuredHeight();
                finalWidth = gallery.getMeasuredWidth();
                ImageAdapter ia = new ImageAdapter(this,images,gallery.getHeight(),gallery.getHeight());
                gallery.setAdapter(ia);
                Log.d(" ---> ", "Height: " + finalHeight + " Width: " + finalWidth);
                return true;
            }
        });
koljsch вне форума Ответить с цитированием
Старый 16.06.2015, 18:42   #9
sinestro
Пользователь
 
Регистрация: 24.02.2012
Сообщений: 88
По умолчанию

а вот за этот кусок кода спасибо. теперь всё хорошо)
sinestro вне форума Ответить с цитированием
Старый 16.06.2015, 18:44   #10
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Отлично!
Всегда пожалуйста
koljsch вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти номер наименьшего элемента в массиве, заданного датчиком случайных чисел на интервале [-20;25] Размер произвольный Кан Паскаль, Turbo Pascal, PascalABC.NET 2 26.12.2013 08:40
Как втавить элемент после к-элемента? Sauber Помощь студентам 1 25.04.2011 20:01
добавить элемент после элемента с указанным номером SOUR47 Помощь студентам 0 20.05.2010 21:09
GD2. Размер текстового элемента Deykun PHP 7 10.02.2010 12:58
Загрузка отдельного элемента после отправки AJAX запроса spein JavaScript, Ajax 2 02.01.2010 22:07