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

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

Войти
Регистрация
Восстановить пароль
 
AlexRu18
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
#1

Массив картинок - Программирование Android

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

Имеется 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):

Книга из картинок - Программирование Android
Как реализовать, наподобие читалок pdf/txt/doc, читалку jpg файлов с эффектом перелистывания страниц? Количество картинок более 100 штук.

Локализация картинок - Программирование Android
Добрый день ! Я написал приложения и решил локализировать картинки, 1-й вариант стандартный, 2-й русский (ru), и 3-й украинский (uk) , но...

Позиционирование картинок - Программирование Android
Мне бы хотелось научиться позиционировать картинки относительно нажатой области экрана

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

Масштабирование картинок из drawable - Программирование Android
Здравствуйте! Суть в следующем, есть самодельное меню из картинок, при портретной ориентации находится вверху при ландшафтной слева. ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vxg
Модератор
3158 / 1960 / 219
Регистрация: 13.01.2012
Сообщений: 7,505
08.10.2016, 09:49 #2
AlexRu18, ваша задача настолько интересная что хочется спросить что же вы на самом деле такое делаете что приходится так вот через спину пятку почесывать...
fraley
105 / 105 / 38
Регистрация: 24.05.2015
Сообщений: 317
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
2 / 2 / 0
Регистрация: 29.01.2015
Сообщений: 101
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;
    }
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 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();
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2016, 14:11
Привет! Вот еще темы с ответами:

Импорт картинок из галереи - Программирование Android
В процессе разработки находится приложение под android. Механика точно та же, что и у начинающего фейсбука - fasemash'a. Так как я лишь...

Масштабирование картинок, отрисованных на кнопках - Программирование Android
Здравствуйте. Есть кнопки с отрисовнными на них картинками android:drawableLeft=&quot;@drawable/icon_temp_btn_on_off&quot;, где...

Динамическая загрузка картинок из интернета - Программирование Android
Добрый день. Пишу спец. rss реадер для одного сайта. И столкнулся с проблемой. К примеру есть у меня список новостей (листвью), в котором...

Способы вывода Видео и Картинок - Программирование Android
Добрый ночи. Очень сильно нужна ваша помощь. Каким образом можно из сервера получить img,iframe,a href, script ..., и...


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

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

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