Я работаю с командой в Android-игре. Был создан графический ресурс spritesheet, который был создан с начальной шириной плитки 96 пикселей, а затем уменьшен до 64 пикселей. На компьютере автора проект работает правильно в новых измерениях, но на моей машине, даже если изображение обновлено до нового разрешения, когда я вхожу в отладку и вызываю getHeight() на ресурсе BMP, он возвращает 96, а анимация отображается неправильно (обрезается).
Я пробовал: обновляемая файловая система eclipse повторное клонирование проекта и создание чистого проекта в eclipse запуск затмения с помощью -clean очистка сборки
Проблема сохраняется, и у меня заканчиваются идеи. Пожалуйста, как мне получить, чтобы получить затмение, чтобы избавиться от каких-либо проблем с его хранением где-нибудь и использовать новое изображение, которое просто сидит в папке /res/
Я тестирую проект на эмуляторе. Запуск android api 2.1, уровень 7.
Bitmap bmp;
bmp = BitmapFactory.decodeResource(getResources(), R.drawable.blah);
При загрузке Bitmap необходимо установить флаг "inScaled", если вы хотите принудительно установить исходный размер. Я нашел это трудным путем, когда Открытые текстуры GL не отображались на более крупных устройствах экрана.
Что-то вроде этого должно это сделать:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
R.drawable.my_image, opts);
Android автоматически масштабирует изображения в папке ресурсов для разрешения экрана устройства. Таким образом, даже если исходное изображение имеет высоту 64 пикселя, нет гарантии, что .getHeight() вернет 64.
Мораль истории: не используйте значения жесткого кода для размеров изображений - используйте методы доступа.