Форум программистов, компьютерный форум 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
Сообщений: 105
21.07.2016, 13:21     Как правильно загружать изображения?
Разрабатываю приложение для игры. Уже выпустил тестовую версию и из первой сотни установивших у двух человек вылезла такая ошибка:

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

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]);

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