С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

01.08.2012, 21:39. Просмотров 611. Ответов 6
Метки нет (Все метки)

Здравствуйте!
Помогите с таким моментом, написал некую маленькую программу которая после нажатия кнопки показывает случайную картинку из drawable.
Как сделать так, чтоб после нажатия на картинку отображалось ее описание ? Для каждой картинки уникальное ?
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.08.2012, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание описания для каждого изображения (Программирование Android):

Создание изображения на лету - Программирование Android
Требуется на карте Google Maps размещать маркеры у которых в качестве иконок будут изображения с цифрами. Т.к. в таком случае иконки...

Дополнительные изображения вывод описания - 1С Битрикс
Здравствуйте, вывожу дополнительные изображения в подробном описании новости, всё показывается, но титлы (альт)) одинаковые у всех, как...

Вывод изображения как превью из полного описания новости DLE 9.7 - DLE
Здравствуйте. Хочу изменить строение короткой новости. Должно получится так, что изображение, которое будет добавлено в новость,...

Графика: Получение негатива отдельно для каждого цветового канала RGB изображения. - C#
1) Получение негатива отдельно для каждого цветового канала RGB изображения. 2) Создание на изображении эффекта «стекла» Может кто...

AS 3.0 Создание контейнера для изображения - ActionScript
Как создать контейнер для изображения, чтобы при масштабирования изображения она не уходила за рамки контейнера ? Принцип DIV в HTML. Хочу...

Создание фильтра для изображения - C++ Builder
Помогите пожалуйста написать фильтр оттенок серого для изображения по клику кнопки. Изображение загружається в image.

6
@gent
16 / 16 / 1
Регистрация: 19.10.2009
Сообщений: 91
02.08.2012, 09:17 #2
Я так понимаю информация о картинке должна храниться в программе и после её закрытия
1. использовать название картинки как ID в базе данных. Использовать SQLite
2. Использовать класс SharedPreference также, как и в первом пункте.
0
Evansir
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 4
02.08.2012, 14:07  [ТС] #3
Спасибо за ответ!
Но описание к каждой картинке большое, по абзацу минимум. Закинул и в стринг.
Если идти такими путями то получается создавать кучу if else ?
0
@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);
            }
    }
Это более удобный вариант.
0
kvaka
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
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());
0
Evansir
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 4
02.08.2012, 18:13  [ТС] #6
Большое спасибо, буду пробовать, что получится отпишусь, чтоб и другим помогло
0
@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>();
Просто копипастил со своего проекта
0
02.08.2012, 20:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.08.2012, 20:27
Привет! Вот еще темы с ответами:

Создание описания классов - C#
Здраствуйте, у меня такой вопрос (речь об интерфесе самого visual 2008). Скажем при наведении мыши на стандартный класс (пример,класс...

Создание Кругов Для каждого задания - AngularJS
Привет всем! Нужно чтоб создавались круги при создании заданий которые будут Тех цветов к какому типу относиться задание. Потом нужно...

создание пустой страницы для каждого пользователя. - PHP БД
Добрый день, интересует такой вопрос. На сайте для каждого нового пользователя должна быть предусмотрена функция создания тем, что-то типо...

создание файла txt для каждого пользователя - PHP
решил создать чат на файле. на каждой странице пользователя например user.php?us='12' будет свой файл со своим файлом txt вот...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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