Обновление проекта Android Eclipse через Git - ресурс изображения не обновляется

1

Я работаю с командой в 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);
  • 0
    Просто чтобы убедиться, вы пробовали дважды щелкнуть файл изображения в Eclipse Package Explorer (по крайней мере, открывает программу просмотра изображений на Mac) и убедились, что это именно то, что вы ожидаете?
  • 0
    Да уж. Eclipse знает, что это там, и Windows Explorer соглашается на стороне файловой системы. Я только что понял, что могу отредактировать изображение, и у меня все еще остается та же проблема с размерами ... Я просто нарисовал весь лист плитки красным цветом, и он появляется, когда запускается, но размеры все еще имеют ошибки. В настоящее время я подозреваю, что это связано с тем, что я запускаю эмулятор с другим разрешением, чем автор оригинала. Мне нужно проверить это завтра.
Теги:
android-emulator

2 ответа

1
Лучший ответ

При загрузке Bitmap необходимо установить флаг "inScaled", если вы хотите принудительно установить исходный размер. Я нашел это трудным путем, когда Открытые текстуры GL не отображались на более крупных устройствах экрана.

Что-то вроде этого должно это сделать:

BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inScaled = false;
Bitmap bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.my_image, opts);
  • 0
    Спасибо за это :)
0

Android автоматически масштабирует изображения в папке ресурсов для разрешения экрана устройства. Таким образом, даже если исходное изображение имеет высоту 64 пикселя, нет гарантии, что .getHeight() вернет 64.

Мораль истории: не используйте значения жесткого кода для размеров изображений - используйте методы доступа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню