Smartway для реализации медиа в Android


Я работаю над приложением для Android, где медиа(аудио/видео/изображения) могут храниться как внутри, так и снаружи. Я столкнусь со следующими сценариями

Случай I Настройка динамических изображений из случайного значения, транслируемого приложением. Прямо сейчас я управляю им как

if(rowData.strName.equals("football")){
                imageView.setImageResource(R.drawable.football);

            }else if(rowData.strName.equals("chess")){
                imageView.setImageResource(R.drawable.chess); 

Проблема на данный момент у меня мало записей, поэтому управление циклом else if не вызывает большой головной боли, но позже это может оказаться так.

Случай II Загрузка носитель из интернета, сохраняя его во внешнем хранилище и загружая его на imageview как при необходимости

Проблема в случае, если изображение уже загружено (приложение отслеживает загруженное изображение), пользователь извлекает карту, после чего я планирую использовать

try{
}catch(FileNotFoundException e){

                imageView.setImageResource(R.drawable.no_media);//media from the app
}

Случай III Я буду иметь listView категории.Каждая категория содержит определенные названия подкатегорий, их изображения(встроенные и загружаемые извне) и их описание.Каждая подкатегория имеет подзаписи с каждой записью, имеющей свое собственное изображение (встроенное и загружаемое извне), описание и мультимедийные файлы(как аудио, так и видео).

Я путаюсь в том, какой Collection класс я должен использовать для этого случая и с чего начать? Для получения данных с сервера (онлайн) я планирую использовать XMLParsing. Пожалуйста, предложите мне лучший способ решить эту проблему.

1 3

1 ответ:

Вау! Это действительно три вопроса. Если бы только я мог получить три раза повторение:)

Случай I

Используйте карту для хранения и извлечения материалов. Экономит время на написании множества if/else утверждений.

Map<String,Integer> drawableMap = new HashMap<String,Integer>();
drawableMap.put("football", R.drawable.football);
// Then later to retrieve...
imageView.setImageResource(drawableMap.get("football"));

Случай II

Хорошо, это кажется прекрасным. Хотя для большей части загрузки изображений я использую существующие библиотеки, такие какUniversal Image Loader илиVolley . Они могут сделать то, что вам нужно, я не уверен.

Кейс III

Я бы взял ОО подход и соответствующую модель данных. Вам не нужно выбирать класс "a" Collection для использования. Создайте класс Category. Создайте класс SubCategory. У класса Category есть подкатегории и т. д. Возьмите его оттуда.

Синтаксический анализ XML-это прекрасно,я не уверен, что вы ожидаете, что вам предложат. Вы также можете рассмотреть JSON, популярный формат данных.