Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
#1

Не понимаю результат операции деления - Android

04.03.2014, 18:01. Просмотров 591. Ответов 3
Метки нет (Все метки)

В конструкторе выполняется следующий код
Java
1
2
3
4
5
display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
Scale_X= width/720;
Scale_Y=height/1280;
В режиме отладки (Android 2.3.6) построчно выполняю код
переменная width - определяется правильно 320
переменная height - 480
Scale_X - (определена как float) значение 0,0
Scale_Y - аналогично 0,0

Как это можно обьяснить?

Добавлено через 1 час 35 минут
отладка проводилась на реальном устройстве, также провёл отладку на реальном устройстве с Android 4.2 разрешение 1280 на 720, в этом случае переменные Scale_X и Scale_Y вычыслились правильно.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 18:01     Не понимаю результат операции деления
Посмотрите здесь:

Android Обновление ProgressBar во время длительной операции
Android Получить результат от стороннего приложения
Android На телефоне не выводиться результат
Android Как получить результат обработчика событий
Android View Pager разные фрагменты на страницах, не понимаю как?
Android Не выводит результат регулярных выражений
Не понимаю нехватку памяти Android
Результат одинаковый? Android
Android Filterable не понимаю как в адаптере взять String значение по позиции ?
Повторение операции в фоне Android
Операции с фрагментами Android
Запрос к БД возвращает некорректный результат Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
proggamer12
17 / 17 / 2
Регистрация: 06.07.2012
Сообщений: 503
Завершенные тесты: 1
04.03.2014, 18:22     Не понимаю результат операции деления #2
Попробуйте так:
Java
1
2
Scale_X= (float)width/720.0f;
Scale_Y=(float)height/720.0f;
Добавлено через 37 секунд
Давно не работал с Java, поэтому не знаю - поможет ли. Но в C++ это сработало бы (а они очень близки по синтаксису)
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.03.2014, 21:06     Не понимаю результат операции деления #3
ASDFD12, где мистика то?
getWidth() и getHeight() у Display возвращают значения в int

Целочисленное деление меньшего числа на большее даст вам 0.
Используйте приведение типов(например как proggamer12 показал)

И кстати, getWidth() и getHeight() - This method was deprecated in API level 13.
Делайте так:
Java
1
2
3
4
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
ASDFD12
33 / 33 / 5
Регистрация: 15.09.2012
Сообщений: 421
04.03.2014, 21:13  [ТС]     Не понимаю результат операции деления #4
да уж, и не подумал, что нежно приведение, спасибо
Yandex
Объявления
04.03.2014, 21:13     Не понимаю результат операции деления
Ответ Создать тему
Опции темы

Текущее время: 05:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru