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

Создание описания для каждого изображения - Android

Восстановить пароль Регистрация
 
Evansir
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 4
01.08.2012, 21:39     Создание описания для каждого изображения #1
Здравствуйте!
Помогите с таким моментом, написал некую маленькую программу которая после нажатия кнопки показывает случайную картинку из drawable.
Как сделать так, чтоб после нажатия на картинку отображалось ее описание ? Для каждой картинки уникальное ?
Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
@gent
16 / 16 / 1
Регистрация: 19.10.2009
Сообщений: 91
02.08.2012, 09:17     Создание описания для каждого изображения #2
Я так понимаю информация о картинке должна храниться в программе и после её закрытия
1. использовать название картинки как ID в базе данных. Использовать SQLite
2. Использовать класс SharedPreference также, как и в первом пункте.
Evansir
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 4
02.08.2012, 14:07  [ТС]     Создание описания для каждого изображения #3
Спасибо за ответ!
Но описание к каждой картинке большое, по абзацу минимум. Закинул и в стринг.
Если идти такими путями то получается создавать кучу if else ?
@gent
16 / 16 / 1
Регистрация: 19.10.2009
Сообщений: 91
02.08.2012, 14:42     Создание описания для каждого изображения #4
А что мешает хранить в базе данных большой текст для картинки? Получаем картинку, берем её название, идем в базу, ищем её ID, получаем необходимый текст. Никаких if-else не понадобится, + база данных синхронизирована, что дает удобство в использовании в многопоточном приложении.
И как вы кстати закинули её описание? Точнее где храните описание?

Есть еще один вариант. Делаем коллекцию java.util.HashMap<String, String>. Далее при выборе картинки, берем её название (будет нашим ID) и добавляем в коллекцию.
будет это выглядеть где-то так:
Java
1
2
3
4
5
java.util.HashMap<Long, Checkpoint> imagesCollection = new java.util.HashMap<String, String>();
...
String imageName = ...
String imageDescription = ...
imagesHashMap.put(imageName,imageDescription);
Тут мы добавляем нашу информацию. Имя служит идентификатором (клюс), а описание картинки это значение.
Далее ели нам надо сохранить на диск это дело, то сериализуем всю коллекцию.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
    private void writeImages() {
        FileOutputStream fos=null;
        ObjectOutputStream oos=null;
        try {
            fos = new FileOutputStream( "imagesCollection");
            oos = new ObjectOutputStream(fos);
            oos.writeObject(imagesCollection);
            oos.flush();
            oos.close();
        } catch (Exception e) {
            Logger.log("GPSService", e);
        }
    }
чтение при запуске приложения
Java
1
2
3
4
5
6
7
8
9
10
11
12
    private void readImages() {
        FileInputStream fis=null;
        ObjectInputStream ois=null;
            try { 
                fis = new FileInputStream("imagesCollection");
                ois = new ObjectInputStream(fis);
                imagesCollection = (java.util.HashMap<String, String>) ois.readObject();
                ois.close();
            } catch (Exception e) {
                Logger.log("GPSService", e);
            }
    }
Это более удобный вариант.
kvaka
 Аватар для kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
02.08.2012, 15:39     Создание описания для каждого изображения #5
Как вариант можно создать xml-файл типа
XML
1
2
3
4
5
6
<items>
<item picture="picture1" text="text1" />
<item picture="picture2" text="text2" />
...
<item picture="picture100" text="text100" />
</items>
потом распарсить его и результат положить в ArrayList c экземплярами своего класса

Java
1
2
3
4
class MyClass{
String pictureName;
String text;
}
также как вариант с xml можно не распарсивать а сделать
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="pictures">
        <item >picture1</item>
        <item >picture2</item>
        <item >picture3</item>
         ...
        <item >picture100</item>
    </string-array>
 
    <string-array name="texts">
        <item >text1</item>
        <item >text2</item>
        <item >text3</item>
         ...
        <item >text100</item>
    </string-array>
</resources>
потом из этого текстовые массивы получить и, опять таки в ArrayList<MyClass> все циклически загнать.
Если что ресурс изображения из текста (названия файла) можно получить так:
Java
1
int picRes = getResources().getIdentifier(pictureName, "drawable", getPackageName());
Evansir
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 4
02.08.2012, 18:13  [ТС]     Создание описания для каждого изображения #6
Большое спасибо, буду пробовать, что получится отпишусь, чтоб и другим помогло
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2012, 20:27     Создание описания для каждого изображения
Еще ссылки по теме:

Создание приложения для организации Android
Android CustomView разные изображения для разных экранов - одна система координат - Как?
Загрузка данных из SQLite для каждого пункта ListView Android
Android Создание приложения для доступа к VK
Передача адреса изображения для ViewImage Android

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

Или воспользуйтесь поиском по форуму:
@gent
16 / 16 / 1
Регистрация: 19.10.2009
Сообщений: 91
02.08.2012, 20:27     Создание описания для каждого изображения #7
Был глюк днем с сайтом. там у меня одна ошибочка в начале кода
Java
1
java.util.HashMap<Long, Checkpoint> imagesCollection = new java.util.HashMap<String, String>();
Тут естественно
Java
1
java.util.HashMap<String, String> imagesCollection = new java.util.HashMap<String, String>();
Просто копипастил со своего проекта
Yandex
Объявления
02.08.2012, 20:27     Создание описания для каждого изображения
Ответ Создать тему
Опции темы

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