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

Массив картинок - Android

Восстановить пароль Регистрация
 
AlexRu18
 Аватар для AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 91
07.10.2016, 23:47     Массив картинок #1
Имеется 18 изображений в drawable.
Создал строковый массив в виде ссылок на картинки
XML
1
2
3
4
 <string-array name="cyPs">
        <item>@drawable/Pic1</item>
        <item>@drawable/Pic2</item>
</string-array>
Узнал что есть TypedArray, а правильно реализовать не смог.

Также есть класс Product
Java
1
2
3
4
5
6
7
8
9
10
public class Product {
    String cyNm;
    String cySub;
    int cyImg;
    Product(String _cyNa, String _cySubNa, int _cyImge) {
        cyNm = _cyNa;
        cySub = _cySubNa;
        cyImg = _cymImge;
    }
}
И есть выборка в классе ChoiseAdapter
Java
1
2
3
        ((TextView) view.findViewById(R.id.tvDescr)).setText(p.cyNm);
        ((TextView) view.findViewById(R.id.tvSubDescr)).setText(p.cySub);
        ((ImageView)view.findViewById(R.id.ivImage)).setImageDrawable(p.cyImg);
И собственно вопрос. Как можно выборкой брать картинки (например из ссылочного массива)?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2016, 23:47     Массив картинок
Посмотрите здесь:

Android Масштабирование картинок из drawable
Android Получение списка картинок
Android Динамическое заполнение массива картинок
Позиционирование картинок Android
Android Книга из картинок
Локализация картинок Android
Быстрая подгрузка картинок Android
Импорт картинок из галереи Android
Черные квадраты вместо картинок Android
Android Слайдер картинок, в виде карусели
Слайдшоу, листание картинок по таймеру Android
Способы вывода Видео и Картинок Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2718 / 1729 / 170
Регистрация: 13.01.2012
Сообщений: 6,463
08.10.2016, 09:49     Массив картинок #2
AlexRu18, ваша задача настолько интересная что хочется спросить что же вы на самом деле такое делаете что приходится так вот через спину пятку почесывать...
fraley
90 / 90 / 31
Регистрация: 24.05.2015
Сообщений: 245
08.10.2016, 10:36     Массив картинок #3
Я не уверен что это хорошее решение, в одном из проектов я воспользовался таким решением - если заранее известны получаемые параметры, они неизменны и один из них уникальный, то можно по имени этого параметра дать имена картинкам в папке drawable. И соответственно после получения данных извлекаем уникальное имя, на всякий случай преобразуем в нижний регистр и вставляем в ImageView таким образом:
Java
1
2
String your_image=unique_name.toLowerCase();
imageView.setImageResource(getResources().getIdentifier("drawable/" + your_image, null, getPackageName()));
AlexRu18
 Аватар для AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 91
08.10.2016, 12:10  [ТС]     Массив картинок #4
vxg, Тут дело в том что если бы у меня был преподаватель, то мне бы всё это давалось проще, быстрее и разумнее. А я только учусь, совершенно самостоятельно. У меня есть задача, я нашёл вариант её решения. К сожалению других вариантов я не обнаружил.

Добавлено через 17 минут
fraley, Немного не понял.
У меня есть цикл, где я из массива беру названия и ссылки на картинки
Java
1
2
3
4
5
6
7
8
9
10
11
void fillData() {
        for (int i = 1; i <= 17; i++) {
            String[] cySerNmArr = getResources().getStringArray(R.array.cySerNm);
            String[] cySerSubNmArr = getResources().getStringArray(R.array.cySerSubNm);
 
            TypedArray cySerPicsArr = getResources().obtainTypedArray(R.array.cyPics);
 
            products.add(new Product(cySerNmArr[i], cySerSubNmArr[i],
                    cySerPicsArr[i]));
        }
 }
А вставка в View идет через класс Product в классе Choise
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public View getView(int position, View convertView, ViewGroup parent) {
        // используем созданные, но не используемые view
        View view = convertView;
        if (view == null) {
            view = lInflater.inflate(R.layout.cy_item, parent, false);
        }
 
        Product p = getProduct(position);
 
        // заполняем View в пункте списка данными из товаров: наименование, под.
        // и картинка
        ((TextView) view.findViewById(R.id.tvDescr)).setText(p.cyNm);
        ((TextView) view.findViewById(R.id.tvSubDescr)).setText(p.cySubNm);
        ((ImageView)view.findViewById(R.id.ivImage)).setImageDrawable(p.cyImg);  //работает только с 1 рисунком, не с массивом
 
        return view;
    }
Паблито
не спать!
1868 / 1602 / 493
Регистрация: 12.05.2014
Сообщений: 5,796
Завершенные тесты: 1
08.10.2016, 14:11     Массив картинок #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
нормальные решение, только я так и не понял в чем проблема?
если реально нужен массив картинок то можно сделать так
Java
1
2
3
4
5
6
        final ArrayList<Drawable> list = new ArrayList<>();
        final TypedArray typedArray = c.getResources().obtainTypedArray(R.array.icon_drawables);
        for (int i = 0; i < typedArray.length(); i++) {
            list.add(typedArray.getDrawable(i));
        }
        typedArray.recycle();
Yandex
Объявления
08.10.2016, 14:11     Массив картинок
Ответ Создать тему
Опции темы

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