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

Как правильно загружать изображения? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Нарушение АП в Google play http://www.cyberforum.ru/android-dev/thread1783706.html
Народ, есть приложение в котором из книги вырывается кусочек(обычно не более 5-х слов) и выводится на экран. Вопрос: не забанит ли меня Google, если я выложу ее в Google play? Я думаю что нет потому что есть вот это https://play.google.com/store/apps/details?id=com.appmk.book.AOTQMCRXSTFXYCWC&hl=ru но не уверен.
Программирование Android Использование другой версии JSON (org.json) Добрый день. Проблема такая - в библиотеке, которую я использую в проекте, используется org.json:json:20151123 зависимость, в то время как в android по умолчанию вшита другая версия. Вопрос - как можно использовать JSON версии из библиотеки в проекте? Пробовал в build.gradle прописывать dependencies { compile "org.json:json:20151123" } Но, как вы понимаете, в проекте использовалась... http://www.cyberforum.ru/android-dev/thread1783665.html
Dagger 2 + java 1.8 Программирование Android
Добрый день! Хочу в приложении использовать dagger 2 но я уже использую java 1.8 и у меня возникли проблемы с gradle зависимостями. Если добавить classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' для дагера то выходит ошибка : "Error:Could not find property 'options' on task ':app:compileDebugJavaWithJack'." Если убрать jack jackOptions { enabled true } То...
Service использует много памяти Программирование Android
Всем привет! у меня есть сервис (IntentService), который работает в отдельном процессе. Суть этого сервиса синхронизировать данные с сервера в локальную БД, это более тысячи запросов к серверу и сохранение результата в бд. Сервис работает замечательно, только есть проблема в потреблении памяти. Она может постепенно вырасти до 50МБ, потом сбросить 10-20МБ, потом опять растет и немного сбрасывает....
Программирование Android Запуск Activity из другого apk http://www.cyberforum.ru/android-dev/thread1783510.html
Здравствуйте! Попытаюсь максимально собрать мысли в кучу и описать, то что мне надо. Есть скомпилированный apk файл без исходного кода, этот apk подключается в моем проекте с помощью DexClassLoader, далее с помощью reflection я оттуда тяну нужные классы и работаю с ними. Все было хорошо пока мне не понадобилось запустить activity этого apk. При попытке сделать это "влоб", естественно android...
Программирование Android Заблокировать долгое нажатие на кнопку HOME Здравствуйте! Как заблокировать долгое нажатие на кнопку HOME в своем приложении? P.S. Android 4.2.2 На версиях 5.0+ меню недавних приложений "блокирую" так: @Override protected void onUserLeaveHint() { Toast toast = Toast.makeText(getApplicationContext(), "Home: OK", Toast.LENGTH_SHORT); toast.show(); startActivity(new Intent(LockscreenMain.this, LockscreenMain.class));... подробнее

Показать сообщение отдельно
AgentZ
0 / 0 / 0
Регистрация: 11.07.2013
Сообщений: 126

Как правильно загружать изображения? - Программирование Android

21.07.2016, 13:21. Просмотров 441. Ответов 12
Метки (Все метки)

Разрабатываю приложение для игры. Уже выпустил тестовую версию и из первой сотни установивших у двух человек вылезла такая ошибка:

Кликните здесь для просмотра всего текста

java.lang.OutOfMemoryError: Failed to allocate a 5266956 byte allocation with 42576 free bytes and 41KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:655)
at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:488)
at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:978)
at android.content.res.Resources.createFromResourceStream(Resources.java:3026)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2721)
at android.content.res.Resources.loadDrawable(Resources.java:2607)
at android.content.res.MiuiResources.loadDrawable(MiuiResources.java:393)
at android.content.res.TypedArray.getDrawable(TypedArray.java:751)
at android.widget.ImageView.<init>(ImageView.java:146)
at android.widget.ImageView.<init>(ImageView.java:135)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:57)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:53)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:1008)
at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:1067)
at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:729)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:810)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:813)
at android.view.LayoutInflater.inflate(LayoutInflater.java:508)
at android.view.LayoutInflater.inflate(LayoutInflater.java:418)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at agentz.com.soulhuntersapp.Info.onCreate(Info.java:27)
at android.app.Activity.performCreate(Activity.java:5975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2526)
at android.app.ActivityThread.access$800(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1421)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5549)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)


Я стал изучать этот вопрос более тщательно и понял, что изображения надо как-то оптимизировать... У меня в ресурсах изображений более 500 штук, каждое примерно 500х900 и по 100-200кб.
Я еще не знаю все нюансы программирования для андроид и для изображений использовал массивы int[][], в которые загружаются картинки с ресурсов и в нужные моменты по индексу загружаются в нужный ImageView методом .setImageResource(array1[int][int]);

Вот, например, так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 if (!Hero.awake[ID]) 
{
            s5.setVisibility(View.GONE);
            layoutSkill5.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0f));
 
            picHero.setImageResource    (Hero.img[ID][1]);
 
        } else {
            Hero leg = new Hero(this);
            leg.createLegPics(); //Создание массива с изображениями легендарных героев
 
            picHero.setImageResource(Hero.imgLeg[ID]);
            s5.setImageResource     (Hero.img[ID][6]);
        }
 
 
        s1.setImageResource         (Hero.img[ID][2]);
        s2.setImageResource         (Hero.img[ID][3]);
        s3.setImageResource         (Hero.img[ID][4]);
        s4.setImageResource         (Hero.img[ID][5]);
 
        tvName.setText                 (Hero.hero[ID][0]);
        tvDescription.setText          (Hero.hero[ID][9]);

Лично у меня на девайсе и еще у сотни человек такой ошибки не было. Но у двоих такая вот беда. Я понял, что есть косяк. Хочу попросить помощи в правильной прогрузке изображений. Если это дело не пары секунд, то могу заплатить.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru