2017-02-05 13 views
0

Я пытаюсь сделать устройство для чтения новостей для Android, но я не могу выяснить, как разыгрывать миниатюру из каждого элемента rss. Должен ли я заполнять каждый URL-адрес миниатюры, а не сохранять их, чтобы использовать их, или я могу просто использовать их с URL-адресом? Это код для подачиAndroid RSS Parse: получить изображение thumbnail

public class RssFeed implements Parcelable {` 

    private String title; 
    private String link; 
    private String description; 
    private String language; 
    private ArrayList<RssItem> rssItems; 

    public RssFeed() { 
     rssItems = new ArrayList<RssItem>(); 
    } 

    public RssFeed(Parcel source) { 

     Bundle data = source.readBundle(); 
     title = data.getString("title"); 
     link = data.getString("link"); 
     description = data.getString("description"); 
     language = data.getString("language"); 
     rssItems = data.getParcelableArrayList("rssItems"); 

    } 

    @Override 
    public void writeToParcel(Parcel dest, int flags) { 

     Bundle data = new Bundle(); 
     data.putString("title", title); 
     data.putString("link", link); 
     data.putString("description", description); 
     data.putString("language", language); 
     data.putParcelableArrayList("rssItems", rssItems); 
     dest.writeBundle(data); 
    } 

    public static final Parcelable.Creator<RssFeed> CREATOR = new Parcelable.Creator<RssFeed>() { 
     public RssFeed createFromParcel(Parcel data) { 
      return new RssFeed(data); 
     } 
     public RssFeed[] newArray(int size) { 
      return new RssFeed[size]; 
     } 
    }; 

и это читатель Rss: (Я также создал объект RSSItem, который хранит значения).

public class RssReader { 

    public static RssFeed read(URL url) throws SAXException, IOException { 

     return read(url.openStream()); 

    } 

    public static RssFeed read(InputStream stream) throws SAXException, IOException { 

     try { 

      SAXParserFactory factory = SAXParserFactory.newInstance(); 
      SAXParser parser = factory.newSAXParser(); 
      XMLReader reader = parser.getXMLReader(); 
      RssHandler handler = new RssHandler(); 
      InputSource input = new InputSource(stream); 

      reader.setContentHandler(handler); 
      reader.parse(input); 

      return handler.getResult(); 

     } catch (ParserConfigurationException e) { 
      throw new SAXException(); 
     } 

    } 

    public static RssFeed read(String source) throws SAXException, IOException { 
     return read(new ByteArrayInputStream(source.getBytes())); 
    } 

} 

ответ

0

Я не уверен, что вы понимаете, разобрав URL-адрес. Наверное, у вас есть весь URL-адрес эскиза.

Если у вас есть URL-адрес эскиза, я думаю, вы можете использовать любые библиотеки для загрузки и кеширования изображений, такие как Picasso и Glide. Они просты в использовании и делают весь тяжелый подъем для вас, когда вы хотите работать с изображениями на Android.

Я использовал Picasso, и он работает как рекламируемый. Хотя, я бы с удовольствием попросил Glide попробовать из-за того, что я слышал в кругах разработчиков.

Примечание: Там могут быть другие библиотеки, которые могут помочь вам с тем же, поэтому, возможно, посмотрите, что там и что работает для вас!

Надеюсь, это поможет. Счастливое кодирование!

+0

ОК спасибо, но моя проблема в том, что я не знаю, как получить URL-адрес! –

+0

URL-адрес должен быть частью модели RssItem, не так ли? Поскольку вы получаете ArrayList объектов RssItem, вы можете просто использовать его оттуда! Мне нужно будет увидеть еще какой-нибудь код, если вам нечего объяснять, может быть, лучше. –

 Смежные вопросы

  • Нет связанных вопросов^_^