Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 20 окт 2018, 00:54

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Парсингу картинок в RSS
СообщениеДобавлено: 22 июн 2013, 22:06 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
Доброе время суток Форумчане!
Подскажите, как можно парсить строку RSS вида
<media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/68321000/jpg/_68321982_l8xry5vx.jpg"/>

И как ее адрес присвоить картинке в приложении. Использую SimpleAdaptor.
Заранее благодарен.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 10:56 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
У меня не получается забрать адрес рисунка http://news.bbcimg.co.uk/media/images/6 ... xry5vx.jpg
так как парсер тормозится на media: и ничего не возвращает.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 11:41 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
какой парсер используете?
как именно парсите? если dom парсером то нужно как атрибут, если sax то так же

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 12:15 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
Прикрепил файл проекта парсера

По пробовал сделать отдельно приложение для загрузки картинки, но почему-то тоже не работает.. подскажите что не так?
Код: [ Загрузить ] [ Скрыть ]
  1. package com.example.im; 
  2.  
  3. import java.io.InputStream; 
  4. import java.net.URL; 
  5.  
  6. import android.app.Activity; 
  7. import android.graphics.drawable.Drawable; 
  8. import android.os.Bundle; 
  9. import android.view.Menu; 
  10. import android.widget.ImageView; 
  11. import android.widget.TextView; 
  12.  
  13. public class MainActivity extends Activity { 
  14.  
  15.     private TextView txtUrl; 
  16.     private ImageView imgView; 
  17.  
  18.      
  19.     @Override 
  20.     protected void onCreate(Bundle savedInstanceState) { 
  21.         super.onCreate(savedInstanceState); 
  22.         setContentView(R.layout.activity_main); 
  23.          
  24.          
  25.          
  26.         String url = "http://developer.alexanderklimov.ru/android/images/android_cat.jpg"; 
  27.         txtUrl = (TextView) findViewById(R.id.txtUrl); 
  28.         txtUrl.setText(url); 
  29.  
  30.         imgView = (ImageView) findViewById(R.id.imgView); 
  31.  
  32.         // загружаем картинку с указанного адреса в ImageView 
  33.         try { 
  34.             imgView.setImageDrawable(grabImageFromUrl(url)); 
  35.         } catch (Exception e) { 
  36.             txtUrl.setText("Ошибка: Exception"); 
  37.         } 
  38.          
  39.          
  40.     } 
  41.  
  42.     private Drawable grabImageFromUrl(String url) throws Exception { 
  43.         return Drawable.createFromStream( 
  44.                 (InputStream) new URL(url).getContent(), "src"); 
  45.     } 
  46.  
  47.     @Override 
  48.     public boolean onCreateOptionsMenu(Menu menu) { 
  49.         // Inflate the menu; this adds items to the action bar if it is present. 
  50.         getMenuInflater().inflate(R.menu.main, menu); 
  51.         return true; 
  52.     } 
  53.  


З.Ы.
Пытаюсь парсить ленту ббс.


Вложения:
AndroidXMLParsing.rar [144.52 KiB]
Скачиваний: 130
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 13:22 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Цитата:
По пробовал сделать отдельно приложение для загрузки картинки, но почему-то тоже не работает.. подскажите что не так?

этот код бред, вот так грузить картинку нужно:
Код: [ Загрузить ] [ Скрыть ]
  1. URL url = new URL("http://developer.alexanderklimov.ru/android/images/android_cat.jpg"); 
  2. Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 

Цитата:
Пытаюсь парсить ленту ббс.

так вы содержимое тега media не получите, потому что он закрытый:
Код: [ Загрузить ] [ Скрыть ]
  1. <media:thumbnail width="66" height="49" url="http://news.bbcimg.co.uk/media/images/68327000/jpg/_68327394_68322919.jpg"/>  

как я говорил, нужно разобрать его и вытащить атрибуты:
Код: [ Загрузить ] [ Скрыть ]
  1. Element e = (Element) nl.item(i); //получили тег media 
  2. String url = e.getAttribute("url"); //получили содержимое атрибута url 

P.S: все запросы к сети делайте в отдельном потоке!

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 15:20 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
Спасибо, с обработкой рисунков заработало, но атрибут вытянуть все равно не удается. Я наверное не совсем понимаю, что делаю... добавил в парсер код с вытягиванием атрибута, последняя строчка кода. Подскажите пожалуйста еще.

З.Ы.
Я только недавно взялся за изучение андроид, так что с потоками у меня в ряд ли получится.
Код: [ Загрузить ] [ Скрыть ]
  1.         XMLParser parser = new XMLParser(); 
  2.         String xml = parser.getXmlFromUrl(URL); // getting XML 
  3.         Document doc = parser.getDomElement(xml); // getting DOM element 
  4.  
  5.         NodeList nl = doc.getElementsByTagName(KEY_ITEM); 
  6.         // looping through all item nodes <item> 
  7.         for (int i = 0; i < nl.getLength(); i++) { 
  8.             // creating new HashMap 
  9.             HashMap<String, String> map = new HashMap<String, String>(); 
  10.             Element e = (Element) nl.item(i); 
  11.             // adding each child node to HashMap key => value 
  12.             map.put(KEY_ID, parser.getValue(e, KEY_ID)); 
  13.             map.put(KEY_NAME, parser.getValue(e, KEY_NAME)); 
  14.             map.put(KEY_DESC, parser.getValue(e, KEY_DESC)); 
  15.             map.put(KEY_DATE, "Date: " + parser.getValue(e, KEY_DATE)); 
  16.             map.put(KEY_LINK, parser.getValue(e, KEY_LINK)); 
  17.             map.put(KEY_IMAGE = e.getAttribute("url"), parser.getValue(e, KEY_IMAGE)); 


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 15:30 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
С потоками разбирайтесь сейчас, потому что Ваше приложение на 4-м Андроиде работать не будет.
Вот это не правильно:
Код: [ Загрузить ] [ Скрыть ]
  1. map.put(KEY_IMAGE = e.getAttribute("url"), parser.getValue(e, KEY_IMAGE)); 

Вот это правильно:
Код: [ Загрузить ] [ Скрыть ]
  1. map.put(KEY_IMAGE, e.getAttribute("url")); 

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 15:42 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
Вывел содержимое в соответствующий текствиев, но он пустой. получается что юрл не забирается.

На всякий случай прикрепил еще раз файл проекта.


Вложения:
AndroidXMLParsing.rar [122.01 KiB]
Скачиваний: 120
Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 16:21 
Аватар пользователя

Зарегистрирован: 26 июн 2012, 13:22
Сообщений: 3422
Откуда: UA
Благодарил (а): 11 раз.
Поблагодарили: 244 раз.
Вы считываете только атрибуты первого уровня, а media:thumbnail находится на втором уровне, по этому нужно получить список второго уровня и уже у него искать media:thumbnail и вытаскивать атрибут url:
Код: [ Загрузить ] [ Скрыть ]
  1. map.put(KEY_IMAGE, getMediaUrl(e)); 
  2. // 
  3. private String getMediaUrl(Element element) 
  4.     { 
  5.         String sUrl = null; 
  6.         NodeList nList = element.getChildNodes(); 
  7.         for (int i = 0; i < nList.getLength(); i++) 
  8.         { 
  9.             Node el = nList.item(i); 
  10.             if (el.getNodeName() != null && el.getNodeName().equalsIgnoreCase("media:thumbnail")) 
  11.             { 
  12.                 sUrl = el.getAttributes().getNamedItem("url").getNodeValue(); 
  13.             } 
  14.  
  15.         } 
  16.         return sUrl; 
  17.     } 


P.S. но я бы рекомендовал использовать SAX парсер. При такой xml он будет быстрее работать, и кода меньше писать.

_________________
R.id.team
Политика на форуме запрещена


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 23 июн 2013, 17:32 

Зарегистрирован: 26 мар 2013, 10:47
Сообщений: 82
Благодарил (а): 3 раз.
Поблагодарили: 5 раз.
Большое спасибо, все заработало!!!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Парсингу картинок в RSS
СообщениеДобавлено: 15 окт 2014, 20:28 

Зарегистрирован: 15 окт 2014, 20:15
Сообщений: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
день добрый !!!
я новичок в андройд разработке пишу приложение которое парсит rss ленту с сайта
при компиляции проекта не отображаются картинки подскажите пожалуйста как это релизовать
Зарание спасибо :roll:


Вложения:
anddev_v_2.zip [11.15 KiB]
Скачиваний: 79
Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB