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

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

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

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

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

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

Узнать разрешение (dpi) картинки, загруженной в Bitmap - Программирование Android
Всем привет! Как получить разрешение картинки из Bitmap? Вообще возможно ли это?

Конвертация android.graphics.Bitmap в java.awt.image.BufferedImage - Программирование Android
Есть предложения по данной теме? Единственная идея, которая возникла в голове - получить массив цветов и на основе его создать объект...

Загрузка ресурсов из модуля - Программирование Android
Здравствуйте! Есть "основной" файл программы под андроид на Eclipse MainActivity.java примерно следующего содержания: package...

Загрузка нужных ресурсов - Программирование Android
Всем привет. Приступили к новому проекту. В проекте используется графика - много графики, если лить всю графику под все разрешения, то...

Переменная в выводе картинки из ресурсов - Программирование Android
Доброго всем времени суток, есть небольшой вопрос/проблема, я андроид ява я новичок и столкнулся с такой проблемой есть код ...

Загрузка картинки - Программирование Android
private class loadPic extends AsyncTask<Void, Void, Void> { private String source; private boolean error = false; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 655
18.10.2015, 22:44 #2
public static Bitmap decodeResource (Resources res, int id) - Added in API level 1
Я тестирую на 4.0.3 и не видел там ошибок. Покажи лог ошибки.
0
sindel
9 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 21
20.10.2015, 12:16  [ТС] #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. А в самом классе выполняется отрисовка и изменение координат картинки.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
20.10.2015, 12:57 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sindel Посмотреть сообщение
java.lang.OutOfMemoryError
Написано же - памяти не хватает, слишком большая картинка.
1
sindel
9 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 21
20.10.2015, 13:10  [ТС] #5
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Написано же - памяти не хватает, слишком большая картинка.
Уже сталкивался с таким, но не думал, что и в данном случае попадусь на те же грабли.
Действительно, поставил картинку поменьше - заработало.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 13:10
Привет! Вот еще темы с ответами:

Загрузка картинки на сервер - Программирование Android
Здравствуйте, такой вопрос. У меня есть php сервер и я хочу чтобы мое приложение отправляло картинку на этот сервер. какой код должен...

Загрузка картинки на сервер - Программирование Android
public void sendMedia(String urlAddr, String filePath) { final String serverAddress = urlAddr; final File file = new...

Поддерживает ли Android Studio gif картинки? - Программирование Android
Добрый день! Я так понял гифку как обычную картинку добавить нельзя. Ну вернее ее добавляет но анимация при этом пропадает. Как же...

Маштабирование картинки на разных Android-устройствах - Программирование Android
Доброе утро, друзья! Подскажите, пожалуйста, такую вещь. Делаю приложение, хочется его немного стилизовать ну и, соответственно, запихать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.10.2015, 13:10
Ответ Создать тему
Опции темы

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