【问题标题】:get and show a sequence of images from URL从 URL 获取并显示一系列图像
【发布时间】:2026-01-30 22:50:01
【问题描述】:

我正在尝试通过此链接 www.repubblica.it/rss/tecnologia/rss2.0.xml 找到显示一组图像的方法。我必须在我的 RSS 应用程序中展示它们,但我坚持这个论点。 图片在这个标签<enclosure url="http://www.repstatic.it/content/nazionale/img/2014/02/06/201914230-3e1f0f4a-c5e4-413a-acd0-f15b781438eb.jpg" length="24317" type="image/jpeg"/>(例如)中。 你能帮助我吗?任何帮助表示赞赏。 这是我的Handler

public class RSSHandler extends DefaultHandler {

 final int state_unknown = 0;
 final int state_title = 1;
 final int state_description = 2;
 final int state_link = 3;
 final int state_pubdate = 4;
 int currentState = state_unknown;

 RSSFeed feed;
 RSSItem item;

 boolean itemFound = false;

 RSSHandler(){
 }

 RSSFeed getFeed(){
 return feed;
 }

 @Override
 public void startDocument() throws SAXException {
 // TODO Auto-generated method stub
 feed = new RSSFeed();
 item = new RSSItem();

 }

 @Override
 public void endDocument() throws SAXException {
 // TODO Auto-generated method stub
 }

 @Override
 public void startElement(String uri, String localName, String qName,
 Attributes attributes) throws SAXException {
 // TODO Auto-generated method stub

 if (localName.equalsIgnoreCase("item")){
 itemFound = true;
 item = new RSSItem();
 currentState = state_unknown;
 }
 else if (localName.equalsIgnoreCase("title")){
 currentState = state_title;
 }
 else if (localName.equalsIgnoreCase("psi")){
 currentState = state_description;
 }
 else if (localName.equalsIgnoreCase("link")){
 currentState = state_link;
 }
 else if (localName.equalsIgnoreCase("pubdate")){
 currentState = state_pubdate;
 }
 else{
 currentState = state_unknown;
 }

 }

 @Override
 public void endElement(String uri, String localName, String qName)
 throws SAXException {
 // TODO Auto-generated method stub
 if (localName.equalsIgnoreCase("item")){
 feed.addItem(item);
 }
 }

  @Override
  public void characters(char[] ch, int start, int length)
  throws SAXException {
  // TODO Auto-generated method stub

  String strCharacters = new String(ch,start,length);

  if (itemFound==true){
  // "item" tag found, it's item's parameter
  switch(currentState){
  case state_title:
  item.setTitle(strCharacters);
  break;
 case state_description:
 item.setDescription(strCharacters);
 break;
 case state_link:
 item.setLink(strCharacters);
 break;
 case state_pubdate:
 item.setPubdate(strCharacters);
 break;
 default:
 break;
 }
 }
 else{
 // not "item" tag found, it's feed's parameter
 switch(currentState){
 case state_title:
 feed.setTitle(strCharacters);
 break;
 case state_description:
 feed.setDescription(strCharacters);
 break;
 case state_link:
 feed.setLink(strCharacters);
 break;
 case state_pubdate:
 feed.setPubdate(strCharacters);
 break;
 default:
  break;
 }
 }

  currentState = state_unknown;
 }
 }

【问题讨论】:

    标签: java android image url rss


    【解决方案1】:

    试试这个代码:

    在这个方法中

    public void startElement(String uri, String localName, String qName,Attributes attributes)
    

    添加此代码将从元素返回 url:

    if ("enclosure".equals(qName)) {
            for (int i = 0; i < attributes.getLength(); i++)
                if (attributes.getQName(i).equals("url"))
                    String url = attributes.getValue(i);
    

    喂我回来

    【讨论】:

    • 关于如何展示它们?我是否必须添加 final int state_enclosure 并在 public vois chatacter() 方法中添加: case state_enclosure: item.setEnclosure(strCharacters);打破;; case state_title: feed.setTitle(strCharacters);休息;
    • 如果您只需要不需要实现 chatacter() 的 url,您将从 startElement 方法中的 url 获取值,您需要将其保存在数组中,解析后下载它们,您可以将它们显示在您的视图中,state_enclosure 是什么意思??
    • 没什么,我很困惑。那么要在我的 ArrayAdapter 中显示它们,这段代码很好吗?
    • try { URL url = new URL("这里有什么?"); HttpGet httpRequest = null; httpRequest = new HttpGet(url.toURI()); HttpClient httpclient = new DefaultHttpClient(); HttpResponse 响应 = (HttpResponse) httpclient .execute(httpRequest); HttpEntity 实体 = response.getEntity(); BufferedHttpEntity b_entity = new BufferedHttpEntity(entity); InputStream 输入 = b_entity.getContent();位图位图 = BitmapFactory.decodeStream(input); img.setImageBitmap(位图); } 捕捉(异常前){ }
    • 上面的代码会给你它自己的url,然后你需要下载它们试试这个例子从urlandroidexample.com/…下载图片
    最近更新 更多