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

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

Войти
Регистрация
Восстановить пароль
 
sindel
9 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 21
#1

Загрузка картинки из ресурсов в Bitmap. Android 4.1.1 - Android

18.10.2015, 21:20. Просмотров 480. Ответов 4
Метки нет (Все метки)

Добрый вечер. Дело заключается в следующем: я загружаю картинку из ресурсов (png) в Bitmap таким образом:
BitmapFactory.decodeResource(getResources(), R.drawable.back_game
Она у меня движется(делаю игру), все ок, но есть одно но:
На андроидах ниже чем 4.2.2 после запуска игры приложение вылетает с ошибкой. Все перепробовал, и вот когда закомментил код с загрузкой картинки(тот что выше), игра запускается. Она-то и так запускается, музыка начинает играть, вот только ошибка вылетает. Именно на версиях ниже чем 4.2.2
Пробовал загружать в Drawable, а после конвертировать в bmp, работает, только картинка не двигается.
Подскажите, как загрузить картинку из ресурсов в bmp так, чтобы на версиях с 4.0.3 все было ок?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 21:20     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1
Посмотрите здесь:

Конвертация android.graphics.Bitmap в java.awt.image.BufferedImage Android
Android Загрузка картинки
Android Загрузка картинки на сервер
Загрузка картинки из Ethernet-а в imageview Android
Android ImageView - загрузка картинки из SDCARD
Android Загрузка нужных ресурсов
Android Загрузка картинки на сервер
Загрузка android проекта на GitHub Android
Android Узнать разрешение (dpi) картинки, загруженной в Bitmap
Android Загрузка ресурсов из модуля
Маштабирование картинки на разных Android-устройствах Android
Поддерживает ли Android Studio gif картинки? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
18.10.2015, 22:44     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1 #2
public static Bitmap decodeResource (Resources res, int id) - Added in API level 1
Я тестирую на 4.0.3 и не видел там ошибок. Покажи лог ошибки.
sindel
9 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 21
20.10.2015, 12:16  [ТС]     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1 #3
10-20 09:02:16.615 1017-1017/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:500)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:353)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:376)
at android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:406)
at septemberpack.september.GamePanel.surfaceCreated(GamePanel.java:57)
at android.view.SurfaceView.updateWindow(SurfaceView.java:543)
at android.view.SurfaceView.access$000(SurfaceView.java:81)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:169)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:671)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1818)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)


P.S. GamePanel - это класс, который наследуется от SurfaceView и реализует интерфейс SurfaceHolder.Callback

На 4.2.2 и выше запускается.
На версиях ниже такая фигня вот.

Добавлено через 10 минут
P.S.

Тыкаю на ошибки, все они ссылаются на библиотечные классы.

И единственная, на мой:
Цитата Сообщение от sindel Посмотреть сообщение
at septemberpack.september.GamePanel.surfaceCreated(GamePanel.java:57)
И как раз, в этой самой 57 строке происходит следующее:
Background background = new Background(BitmapFactory.decodeResource(getResources(), R.drawable.back_game));

Конструктор Background принимает всего лишь 1 bitmap. А в самом классе выполняется отрисовка и изменение координат картинки.
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
20.10.2015, 12:57     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1 #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sindel Посмотреть сообщение
java.lang.OutOfMemoryError
Написано же - памяти не хватает, слишком большая картинка.
sindel
9 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 21
20.10.2015, 13:10  [ТС]     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1 #5
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Написано же - памяти не хватает, слишком большая картинка.
Уже сталкивался с таким, но не думал, что и в данном случае попадусь на те же грабли.
Действительно, поставил картинку поменьше - заработало.
Yandex
Объявления
20.10.2015, 13:10     Загрузка картинки из ресурсов в Bitmap. Android 4.1.1
Ответ Создать тему
Опции темы

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