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

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

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

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

22.10.2016, 22:47. Просмотров 231. Ответов 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), и не правильно инициализирую массив, но я не нашел в инете как правильно...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2016, 22:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача адреса изображения для ViewImage (Программирование Android):

Адреса директорий (папок), содержащих изображения - Программирование Android
Здравствуйте! Как узнать адреса всех директорий, в которых есть картинки? Т.е. как в галереи стандартной, имя папки высвечивается и в ней...

Передача изображения на сервер - Программирование Android
Здравствуйте уважаемые форумчане. Я все пытаюсь передать изображение на сервер, но никак не могу разобраться, что происходит, вот мой код: ...

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

Как вывести карту и маркер для определения адреса? - Программирование Android
Привет всем. Не давно начал работать с android, нужна помощь знающих разработчиков. Проект буду на android studio. Нужна реализовать что...

Регулярка для вытягивания адреса изображения со страницы сайта. - C#
здравствуйте. что-то не получается написать регулярку для вытягивания адреса изображения со страницы сайта. адрес изображения на...

указание адреса при загрузки изображения - C#
как загрузить в picturebox изображение без указания пути к нему? на разных компах при загрузке проекта соответственно получаются разные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
23.10.2016, 07:30 #2
можно посмотреть лог ошибки?
может быть нужно вот так: int id = context.getResources().getIdentifier(resourceName, "drawable",
context.getPackageName());
1
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 10:57  [ТС] #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 поправила.
0
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,798
Завершенные тесты: 1
23.10.2016, 11:03 #4
что за бред?
делать так, как посоветовали выше - криво

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от Паблито Посмотреть сообщение
понадобиться
http://tsya.ru/
Люди иногда опечатываются, не стоит быть таким "умным".
0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
23.10.2016, 11:07 #6
а какой лог получаете на живом девайсе? может банально слишком большая картинка и не влазит в вью
1
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,798
Завершенные тесты: 1
23.10.2016, 11:10 #7
Цитата Сообщение от sincov95 Посмотреть сообщение
Посмотрите, у меня в первом посте указан такой метод, но не получается нормально ID передать.
я все вижу
тебе уже написали выше - для точной диагностики надо показывать лог ошибки
Цитата Сообщение от sincov95 Посмотреть сообщение
Люди иногда опечатываются, не стоит быть таким "умным".
почему? ты хочешь об этом поговорить?
0
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:16  [ТС] #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
0
vxg
23.10.2016, 11:18
  #9

Не по теме:

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

0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
23.10.2016, 11:20 #10
сделайте largeheap в манифесте
1
sincov95
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 71
23.10.2016, 11:23  [ТС] #11
Цитата Сообщение от shavuz Посмотреть сообщение
сделайте largeheap в манифесте
Сработало.
0
Pablito
23.10.2016, 11:24
  #12

Не по теме:

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

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

Добавлено через 4 минуты
Цитата Сообщение от Паблито Посмотреть сообщение
еще один "ценный" совет
но я пожалуй действительно свалю из темы, ТС очень умен, настолько умен, что не может отловить элементарную ошибку и спорит по каждому поводу
Хотел простынь написать, но это Ваше дело. Я на каждый Ваш ответ писал свои уточняющие комментарии.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2016, 11:35
Привет! Вот еще темы с ответами:

Передача адреса в AJAX запросе - PHP Сети
Тут внезапно возник один вопрос. На главной странице index.php пользователь заполняет форму, и отправляет данные через AJAX скрипту...

Передача копии адреса в поток - C++
Всем привет. Проблема в том что когда запускается поток итератор уже указывает за пределы листа. Как передать копию адреса или владение...

Передача в процедуру адреса функции - C++
1.Не могу найти где прочитать - как вызывать функцию, если передается ее адрес - и как выглядит вызов и обращение к ней? 2. Нужен...

Указатели Char, передача адреса в функцию - C (СИ)
в данном случае проблема выглядит следующим образом: main(void) { char *map, *moves; readFile(map, moves); } ...


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

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

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