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

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

Войти
Регистрация
Восстановить пароль
 
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
#1

Передача адреса изображения для ViewImage - Android

22.10.2016, 22:47. Просмотров 176. Ответов 12
Метки нет (Все метки)

Здравствуйте.


Имеется массив адресов (как я понял):
Java
1
2
private static final int[] icons = {android.R.drawable.ic_popup_reminder, android.R.drawable.ic_menu_add,
           // android.R.drawable.ic_menu_delete};
Который для каждого пункта в списке задает свое изображение:
Java
1
 holder.mBgImage.setImageResource(item.getImageResId());
Но как только я пытаюсь уйти от стандартных андроидовских изображений
Java
1
private static final int[] icons = {R.drawable.mb, R.drawable.yb, R.drawable.hb};
У меня возникает ошибка. И не могу понять с чем она связана, возможно, что изображения другого формата (png), и не правильно инициализирую массив, но я не нашел в инете как правильно...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2016, 22:47     Передача адреса изображения для ViewImage
Посмотрите здесь:

Android Создание описания для каждого изображения
Android Адреса директорий (папок), содержащих изображения
Android Гугл адреса
Yandex mapkit узнать координаты адреса Android
Для чего нужны миниатюры изображения? Android
Получение адреса, по координатам Android
Android CustomView разные изображения для разных экранов - одна система координат - Как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
76 / 82 / 13
Регистрация: 29.01.2014
Сообщений: 369
23.10.2016, 07:30     Передача адреса изображения для ViewImage #2
можно посмотреть лог ошибки?
может быть нужно вот так: int id = context.getResources().getIdentifier(resourceName, "drawable",
context.getPackageName());
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 10:57  [ТС]     Передача адреса изображения для ViewImage #3
Цитата Сообщение от shavuz Посмотреть сообщение
может быть нужно вот так
Это сработало только с небольшой поправкой
Java
1
2
static int id3 = pCreateActivity.getContext().getResources().getIdentifier(String.valueOf(R.drawable.hb), "drawable",
            pCreateActivity.getContext().getPackageName());
Если кому потом понадобиться контекст я брал из основного активити, и String.valueOf(R.drawable.hb) вот эту часть мне sdk поправила.
Паблито
резкий
1958 / 1693 / 525
Регистрация: 12.05.2014
Сообщений: 6,038
Завершенные тесты: 1
23.10.2016, 11:03     Передача адреса изображения для ViewImage #4
что за бред?
делать так, как посоветовали выше - криво

у ImageView есть метод, который принимает ID картинки из ресурсов, и он, внезапно!! называется setImageResource
туда надо так и писать R.drawable.имя_картинки

Добавлено через 1 минуту
и да, контекст можно брать не из активити, а прямо с любой картинки, хоть с той же imageView.getContext()
и еще
Цитата Сообщение от sincov95 Посмотреть сообщение
понадобиться
http://tsya.ru/
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:06  [ТС]     Передача адреса изображения для ViewImage #5
А нет! Очень странно: в эмуляторе nexus с версией андроида 5.1.1 работает. А на живом oneplus 1 с 6.0.1 - нет.

Цитата Сообщение от Паблито Посмотреть сообщение
у ImageView есть метод, который принимает ID картинки из ресурсов, и он, внезапно!! называется setImageResource
Посмотрите, у меня в первом посте указан такой метод, но не получается нормально ID передать.

Добавлено через 1 минуту
Цитата Сообщение от Паблито Посмотреть сообщение
понадобиться
http://tsya.ru/
Люди иногда опечатываются, не стоит быть таким "умным".
shavuz
76 / 82 / 13
Регистрация: 29.01.2014
Сообщений: 369
23.10.2016, 11:07     Передача адреса изображения для ViewImage #6
а какой лог получаете на живом девайсе? может банально слишком большая картинка и не влазит в вью
Паблито
резкий
1958 / 1693 / 525
Регистрация: 12.05.2014
Сообщений: 6,038
Завершенные тесты: 1
23.10.2016, 11:10     Передача адреса изображения для ViewImage #7
Цитата Сообщение от sincov95 Посмотреть сообщение
Посмотрите, у меня в первом посте указан такой метод, но не получается нормально ID передать.
я все вижу
тебе уже написали выше - для точной диагностики надо показывать лог ошибки
Цитата Сообщение от sincov95 Посмотреть сообщение
Люди иногда опечатываются, не стоит быть таким "умным".
почему? ты хочешь об этом поговорить?
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:16  [ТС]     Передача адреса изображения для ViewImage #8
И еще, вот Вы поумничали, а по делу ничего и не написали. Проблема в инициализации массива.

Добавлено через 3 минуты
В эмуляторе работает даже так нормально без всяких контекстов:
Java
1
private static final int[] icons = {R.drawable.milky2, R.drawable.yb, R.drawable.hb};

Лог
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
FATAL EXCEPTION: main
                                                   Process: ru.op.pmq, PID: 21052
                                                   Theme: themes:{com.android.settings=overlay:com.holocon.mayur.theme, default=overlay:com.ngocgiap.lgg4theme, iconPack:com.ngocgiap.lgg4theme, fontPkg:com.ngocgiap.lgg4theme, com.android.systemui=overlay:com.ngocgiap.lgg4theme, com.android.systemui.navbar=overlay:com.ngocgiap.lgg4theme}
                                                   java.lang.OutOfMemoryError: Failed to allocate a 166490364 byte allocation with 16774368 free bytes and 110MB until OOM
                                                       at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
                                                       at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
                                                       at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:609)
                                                       at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
                                                       at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:1080)
                                                       at android.content.res.Resources.loadDrawableForCookie(Resources.java:2730)
                                                       at android.content.res.Resources.loadDrawable(Resources.java:2635)
                                                       at android.content.res.Resources.getDrawable(Resources.java:845)
                                                       at android.content.res.Resources.getDrawable(Resources.java:820)
                                                       at android.support.v7.widget.ResourcesWrapper.getDrawable(ResourcesWrapper.java:133)
                                                       at android.content.Context.getDrawable(Context.java:458)
                                                       at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26)
                                                       at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:344)
                                                       at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
                                                       at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
                                                       at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
                                                       at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:69)
                                                       at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:78)
                                                       at ru.op.pmq.adapters.DerpAdapter.onBindViewHolder(DerpAdapter.java:57)
                                                       at ru.op.pmq.adapters.DerpAdapter.onBindViewHolder(DerpAdapter.java:24)
                                                       at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5825)
                                                       at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5858)
                                                       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5094)
                                                       at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4970)
                                                       at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2029)
                                                       at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1414)
                                                       at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1377)
                                                       at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:578)
                                                       at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3315)
                                                       at android.support.v7.widget.RecyclerView.onMeasure(RecyclerView.java:2843)
                                                       at android.view.View.measure(View.java:18799)
                                                       at android.support.v4.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1411)
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                       at android.support.v4.widget.NestedScrollView.onMeasure(NestedScrollView.java:479)
                                                       at android.view.View.measure(View.java:18799)
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                       at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:700)
                                                       at android.support.design.widget.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:90)
                                                       at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:1364)
                                                       at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:765)
                                                       at android.view.View.measure(View.java:18799)
                                                       at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                       at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                    at android.support.v7.widget.ContentFrameLayout.onMeasure(Cont
vxg
23.10.2016, 11:18
  #9

Не по теме:

sincov95, вы не правы,все что было написано имеет отношение к вашему коду, то что вы запнулись раньше чем налетели на указанные ошибки ничего не меняет

shavuz
76 / 82 / 13
Регистрация: 29.01.2014
Сообщений: 369
23.10.2016, 11:20     Передача адреса изображения для ViewImage #10
сделайте largeheap в манифесте
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:23  [ТС]     Передача адреса изображения для ViewImage #11
Цитата Сообщение от shavuz Посмотреть сообщение
сделайте largeheap в манифесте
Сработало.
Паблито
23.10.2016, 11:24
  #12

Не по теме:

еще один "ценный" совет
но я пожалуй действительно свалю из темы, ТС очень умен, настолько умен, что не может отловить элементарную ошибку и спорит по каждому поводу

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2016, 11:35     Передача адреса изображения для ViewImage
Еще ссылки по теме:

Android Программное получение белого IP адреса
Как вывести карту и маркер для определения адреса? Android
Android Поле ввода адреса с динамическим выводом подсказки
Как достать из телефонной книги адреса чатов, адреса проживания и сайты Android
Android Автодополнение адреса

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

Или воспользуйтесь поиском по форуму:
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:35  [ТС]     Передача адреса изображения для ViewImage #13
Оказалось, что одно из изображений было слишком большим, не углядел. Обошлось даже без android:largeHeap="true".
Спасибо shavuz.

Добавлено через 4 минуты
Цитата Сообщение от Паблито Посмотреть сообщение
еще один "ценный" совет
но я пожалуй действительно свалю из темы, ТС очень умен, настолько умен, что не может отловить элементарную ошибку и спорит по каждому поводу
Хотел простынь написать, но это Ваше дело. Я на каждый Ваш ответ писал свои уточняющие комментарии.
Yandex
Объявления
23.10.2016, 11:35     Передача адреса изображения для ViewImage
Ответ Создать тему
Опции темы

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