Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
5 / 5 / 3
Регистрация: 29.01.2015
Сообщений: 189
1

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

07.10.2016, 23:47. Показов 5414. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется 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);
И собственно вопрос. Как можно выборкой брать картинки (например из ссылочного массива)?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2016, 23:47
Ответы с готовыми решениями:

Массив картинок
Вообщем нужно сделать так что бы к примеру 40 одинаковых картинок падали в низ (зацикливались) ...

Массив картинок
у мя есть игра пятнашки..там массив кнопок..как мне вмсто массива кнопок сделать массив моих...

Массив из картинок.
Доброго времени суток. Подскажите пожалуйста. 1))) Я знаю как создавать значения для Label. Т.е....

Массив картинок
у мя есть игра пятнашки она сост из масива кнопок...мне над вместо массива кнопок сделать масив...

4
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,378
08.10.2016, 09:49 2
AlexRu18, ваша задача настолько интересная что хочется спросить что же вы на самом деле такое делаете что приходится так вот через спину пятку почесывать...
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
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()));
0
5 / 5 / 3
Регистрация: 29.01.2015
Сообщений: 189
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;
    }
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
08.10.2016, 14:11 5
Лучший ответ Сообщение было отмечено AlexRu18 как решение

Решение

нормальные решение, только я так и не понял в чем проблема?
если реально нужен массив картинок то можно сделать так
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();
0
08.10.2016, 14:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.10.2016, 14:11
Помогаю со студенческими работами здесь

Массив из картинок
С массивами впервые столкнулся в ООП-программировании, возникли проблемы. Имеется одна картинка на...

Массив картинок
Есть одномерный массив от 1 до n. Можно ли присвоить каждому элементу массива картинку. А потом...

Парсинг картинок в массив
Господа, помогите! Много рыл, но так и не нашел нормального ответа, т.к. только начинаю работать с...

Массив картинок и NullReferenceException
Вот такой вот код исполняется с ошибкой, что во вложении. Что не так и что с этим делать?...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru