Android Rss 图片问题

2024-01-27

大家好 我对 Android 开发比较陌生,正在为新闻网站创建 RSS 阅读器。 我遇到的问题是我想要获取图像的 rss feed 的网站的类型为“我为 android 上的代码所做的是...2 个类...RssItem 和 RssItem Displayer

public class RssItem {

private String title;
private String description;
private Date pubDate;
private String link;
private static ImageView image;

public RssItem(String title, String description,ImageView image, Date pubDate, String link) {
    this.title = title;
    this.description = description;
    RssItem.image = image;
    this.pubDate = pubDate;
    this.link = link;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}
public ImageView getImage(ImageView image) {
      return this.image = image;
}     
public void setImage(ImageView image) {
          this.image = image;     
}
public Date getPubDate() {
    return pubDate;
}

public void setPubDate(Date pubDate) {
    this.pubDate = pubDate;
}

public String getLink() {
    return link;
}

public void setLink(String link) {
    this.link = link;
}

@Override
public String toString() {

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd - hh:mm:ss");

    String result = getTitle() + "   ( " + sdf.format(this.getPubDate()) + " )";
    return result;
}

public static ArrayList<RssItem> getRssItems(String feedUrl) {

    ArrayList<RssItem> rssItems = new ArrayList<RssItem>();

    try {
        //open an URL connection make GET to the server and 
        //take xml RSS data
        URL url = new URL(feedUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();

        if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            InputStream is = conn.getInputStream();

            //DocumentBuilderFactory, DocumentBuilder are used for 
            //xml parsing
            DocumentBuilderFactory dbf = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();

            //using db (Document Builder) parse xml data and assign
            //it to Element
            Document document = db.parse(is);
            Element element = document.getDocumentElement();

            //take rss nodes to NodeList
            NodeList nodeList = element.getElementsByTagName("item");

            if (nodeList.getLength() > 0) {
                for (int i = 0; i < nodeList.getLength(); i++) {

                    //take each entry (corresponds to <item></item> tags in 
                    //xml data

                    Element entry = (Element) nodeList.item(i);

                    Element _titleE = (Element) entry.getElementsByTagName(
                            "title").item(0);
                    Element _descriptionE = (Element) entry
                            .getElementsByTagName("description").item(0);
                    Element _imageE = (Element) entry
                            .getElementsByTagName("image").item(0);
                    Element _pubDateE = (Element) entry
                            .getElementsByTagName("pubDate").item(0);
                    Element _linkE = (Element) entry.getElementsByTagName(
                            "link").item(0);

                    String _title = _titleE.getFirstChild().getNodeValue();
                    String _description = _descriptionE.getFirstChild().getNodeValue();

                     // ImageView image = (ImageView)findViewbyId(R.id.MyImage);
                     // Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(feedUrl).getContent());
                     // image.setImageBitmap(bitmap); 
                    //} catch (MalformedURLException e) {

                    /*try {
                          //where imageUrl is what you pulled out from the rss feed
                          Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(feedUrl).getContent());
                          image.setImageBitmap(bitmap); 
                        } catch (MalformedURLException e) {
                         //log exception here
                        } catch (IOException e) {
                          //log exception here
                        }

                    */

                    Date _pubDate = new Date(_pubDateE.getFirstChild().getNodeValue());
                    String _link = _linkE.getFirstChild().getNodeValue();

                    //create RssItemObject and add it to the ArrayList
                    RssItem rssItem = new RssItem(_title, _description, image,
                            _pubDate, _link);

                    rssItems.add(rssItem);
                }
            }

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return rssItems;
}      

但我不知道如何放置 src 图像元素

我还创建了一个图像视图,它将在布局 xml 上显示它

在显示的另一个类中RSS 项目显示 I have

public class RssItemDisplayer extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.rss_item_displayer);

    RssItem selectedRssItem = com.AndroidRSSReader.AndroidRSSReader.selectedRssItem;
    //Bundle extras = getIntent().getExtras();
    TextView titleTv = (TextView)findViewById(R.id.titleTextView);  
    TextView contentTv = (TextView)findViewById(R.id.contentTextView);  
    ImageView image=(ImageView)findViewById(R.id.MyImage);  

    String title = "";
    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd - hh:mm:ss");
    title = "\n" + selectedRssItem.getTitle() + "   ( "
     + sdf.format(selectedRssItem.getPubDate()) + " )\n\n";

    String content = "";
    content += selectedRssItem.getDescription() + "\n"
            + selectedRssItem.getLink();

    titleTv.setText(title);
    contentTv.setText(content);

    image=selectedRssItem.getImage(image);
    try {
          String feedUrl = null;
        //where imageUrl is what you pulled out from the rss feed
          Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(feedUrl).getContent());
          image.setImageBitmap(bitmap); 
        } catch (MalformedURLException e) {
         //log exception here
        } catch (IOException e) {
          //log exception here
        }

the logcat 给了我对代码中获取位图的 rss 项目行的警告

11-29 00:13:44.593: WARN/System.err(2997): java.net.MalformedURLException: Protocol not found: 
11-29 00:13:44.593: WARN/System.err(2997):     at java.net.URL.<init>(URL.java:275)
11-29 00:13:44.593: WARN/System.err(2997):     at java.net.URL.<init>(URL.java:159)
11-29 00:13:44.593: WARN/System.err(2997):     at com.AndroidRSSReader.RssItem.getRssItems(RssItem.java:92)
11-29 00:13:44.593: WARN/System.err(2997):     at com.AndroidRSSReader.AndroidRSSReader.refressRssList(AndroidRSSReader.java:301)
11-29 00:13:44.593: WARN/System.err(2997):     at com.AndroidRSSReader.AndroidRSSReader.onCreate(AndroidRSSReader.java:229)
11-29 00:13:44.593: WARN/System.err(2997):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-29 00:13:44.593: WARN/System.err(2997):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-29 00:13:44.593: WARN/System.err(2997):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-29 00:13:44.593: WARN/System.err(2997):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-29 00:13:44.603: WARN/System.err(2997):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-29 00:13:44.603: WARN/System.err(2997):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-29 00:13:44.613: WARN/System.err(2997):     at android.os.Looper.loop(Looper.java:123)
11-29 00:13:44.613: WARN/System.err(2997):     at android.app.ActivityThread.main(ActivityThread.java:4627)
11-29 00:13:44.613: WARN/System.err(2997):     at java.lang.reflect.Method.invokeNative(Native Method)
11-29 00:13:44.613: WARN/System.err(2997):     at java.lang.reflect.Method.invoke(Method.java:521)
11-29 00:13:44.613: WARN/System.err(2997):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
11-29 00:13:44.613: WARN/System.err(2997):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
11-29 00:13:44.613: WARN/System.err(2997):     at dalvik.system.NativeStart.main(Native Method)

我应该在这两件事中放入什么来抓取图像,尤其是 rss 项目类 无论如何,如果有人可以帮助我,我将不胜感激


您的 RssItem 类不应包含以下内容:

private static ImageView image;

将其替换为:

private String imageUrl;

In your getRssItems方法、用途_imageE得到的值imageUrl。然后使用imageUrl如下所述。

ImageView 只会显示设备本地存储的图像,因此将其设置为远程 URL 将不起作用。可以在这里找到一种解决方案:Android,在 URL 中制作图像等于 ImageView 的图像 https://stackoverflow.com/questions/3118691/android-make-an-image-at-a-url-equal-to-imageviews-image所以,你会想要改变:

titleTv.setText(title);
image.setImageURI(uri);
contentTv.setText(content);

to:

titleTv.setText(title);
contentTv.setText(content);
try {
  //where imageUrl is what you pulled out from the rss feed
  Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
  image.setImageBitmap(bitmap); 
} catch (MalformedURLException e) {
 //log exception here
} catch (IOException e) {
  //log exception here
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Rss 图片问题 的相关文章

  • 在Android的activity中调用onResume

    在活动的过程中通过调用 this OnResume 强制 onResume 事件可以吗 或者我应该实现另一个由 OnResume 和第一个成员调用的过程 实现在您的重写中调用的另一个过程onResume 后者不打算由您调用 它是一种方便的方
  • EditText 的高度不会扩展到其父级的高度

    我在滚动视图中放置了编辑文本 高度 match parent并期望它的高度等于滚动视图 但事实并非如此 它的高度就像wrap content这意味着如果 EditText 中没有文本 我必须将光标指向要弹出的软键盘的第一 行 我想要的是我可
  • Tomcat JDBC 池中没有足够的空闲连接

    给定以下 Tomcat JDBC 连接设置
  • 协程和 Firebase:如何实现类似 Javascript 的 Promise.all()

    在 Javascript 中 您可以同时启动两个 或更多 异步任务 等待它们完成 然后执行某些操作 继续 const firstReturn secondReturn await Promise all firstPromise secon
  • 如何使用asynctask显示倒计时的进度条?

    在我的应用程序中 我希望用户按下按钮 然后等待 5 分钟 我知道这听起来很糟糕 但就这样吧 5 分钟等待期间的剩余时间应显示在进度条中 我使用带有文本视图的 CountDownTimer 来倒计时 但我的老板想要看起来更好的东西 这就是进度
  • Java中通过FTP创建文件夹层次结构

    Java 是否有现成的功能可以在远程 FTP 服务器上创建文件夹层次结构 Apache Commons 确实提供了 FTP 客户端 但我找不到创建目录层次结构的方法 它确实允许创建单个目录 makeDirectory 但创建整个路径似乎并不
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页
  • 这个finally子句包含close()调用的原因是什么

    我正在学习在线java课程 使用 Java 编程简介 http math hws edu javanotes index html 在 I O 章节中 引入了以下代码 顺便说一下 在本程序的末尾 您将发现我们第一个有用的 try 语句中的
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 使用 Mockitos 传递参数化输入

    我正在使用 Mockito 进行单元测试 我想知道是否可以使用 Junit 测试中的方式发送参数化输入参数 e g InjectMocks MockClass mockClass new MockClass Test public void
  • Java中如何限制文件大小

    我正在我的应用程序中创建一个文件 并继续向该文件中写入一些内容 但是当我的文件达到一定大小 比如说 100 行 后 我想删除第一行并将新行写入底部 要求是我的文件应该受到限制 但它应该保留我写入文件的最新内容 请告诉我在Java中是否可行
  • Google App Engine数据存储区字符串编码问题

    你好 我正在使用 Google App Engine 进行一个项目 并且需要存储一些字符串 我正在使用 Java 和JDOHelper getPersistenceManagerFactory transactions optional 在
  • 从 SQL 语句中检索元数据(表名)

    我使用的是 Visual Studio 2008 我创建了一个 Winforms 应用程序 并且尝试从 SQL 语句中提取表名 con new SqlConnection connString String queryString Sele
  • Web服务连接超时和请求超时之间的区别

    WebClientTestService service new WebClientTestService int connectionTimeOutInMs 5000 Map
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • Quartz 2D/OpenGLES 图像上的几何变形(最好使用 CGImage)

    实现诸如收缩 鱼眼等几何变形的首选方法是什么 使用iPhone SDK 我知道 OSX 的 Core Image 库内置了所有这些类型的过滤器 但 iPhone SDK 没有 我可以在给定原始源位图数据的特定位置和半径处创建位移图 但我不确
  • 用于从链表中删除元素的大 O 表示法[重复]

    这个问题在这里已经有答案了 我正在阅读有关链接列表的内容 我发现 从链表中删除所需的元素需要 O n 运行时间 其中 n 是元素的数量 列表中的元素 http www cs mcgill ca dprecup courses IntroCS

随机推荐

  • 4.0 和 2.0 应用程序之间的 Asp.Net 表单身份验证 SSO

    4 0 框架应用程序和 2 0 框架应用程序之间的单点登录似乎已被破坏 我有一个基于 asp net Framework 2 0 构建的旧应用程序和一个基于 asp net Framework 4 0 构建的新应用程序 我正在尝试在两者之间
  • VS2010图表控件:减少Y轴边距

    如何减小如下所示的左侧边距区域 标记为红色 的宽度 尝试这样的事情 Chart ChartAreas Chart ChartArea ObjectName InnerPlotPosition New System Windows Forms
  • 我可以暂时暂停 ORMLite 中自动生成的 ID 吗?

    我在我目前正在编写的一个小应用程序中使用 Android 和 ORMLite 该应用程序的目标是具有有效的导入 导出功能 为此我使用简单的 XML 框架 在某种程度上 一切都运转良好 情况如下 对象 A 包含引用对象 B 的外键 对象 B
  • 有没有办法从字符串创建 SyndicateFeed?

    我正在尝试从本地存储的 XML 数据重新创建 SyndicateFeed 对象 System ServiceModel Syndicate 如果我使用 XMLDocument 这会很容易 我会调用 LoadXml string Syndic
  • 任意长度的通用位向量类型

    出于与此处描述相同的原因 用户定义的未解释函数 https stackoverflow com questions 7740556 equivalent of define fun in z3 api 我想定义我自己的未解释函数 bvred
  • 如果下拉列表中的选择发生更改,则从工作表中删除数据

    跟进之前回答的问题 Excel VBA 基于一系列下拉列表运行宏 https stackoverflow com questions 40478350 excel vba run a macro based on a range of dr
  • 如何在不知道 setInterval() 和 setTimeOut() ID 的情况下清除它们?

    如果我不知道返回值setInterval or setTimeOut 我还能用吗clearInterveral id or clearTimeOut id 清除它们 Thanks 您可以替换原来的 setTimeout 和 setInter
  • Java - 访问控制允许来源多源域?

    所以我已经阅读了有关此问题的其他线程 但没有找到解决方案 我遇到的问题是因为我设置 access control allow methods true 我无法使用setHeader Access Control Allow Origin 我
  • C++11 成员初始化列表歧义

    由于此环境中的 GNU 标准库实现 我正在努力解决 c 11 符号解析中似乎存在歧义的问题 Arch Linux 4 2 5 1 x86 64 克 5 2 0 铿锵 3 7 0 Example include
  • 无法在 Angular JS 中使用 SmartTable 选择网格项

    我已经使用网格实现了智能表在 Angular JS 中 根据智能表文档 为了选择网格项 我们需要添加st select row row 我也加了这个 但我无法选择网格 实现的应用程序可以在 plunk 中看到 网址如下 任何人都可以帮我使用
  • 从 jQuery 调用 PHP 函数?

    我的网站上有一个 PHP 函数 需要几秒钟才能完成 这会保留整个页面 这是我不想要的 页面加载后是否可以使用 jquery 调用此 PHP 函数并将结果显示在 div 中 还要显示 ajax 加载器图像直到 PHP 函数完成 我一直在查看
  • hubris 无法安装:缺少 C 库:ruby、ruby、ruby

    我拼命尝试安装 Hubris 但每当我运行 cabal install 时安装就会失败 哈比斯链接 https github com mwotton Hubris tree master Haskell https github com m
  • Air for Android:设备警报后黑屏

    我确实有一个问题 而且没什么可继续的 我即将在三星应用商店上发布一个应用程序 使用 Air for Android As3 创建 并且刚刚得到了一份问题列表 在该应用程序经过三星工作人员测试后 才能发布该应用程序 我确实解决了几乎所有问题
  • Map和Reduce之间的主要区别

    我使用了这两种方法 但我对这两种方法的用法感到很困惑 有什么吗map可以做但是reduce不可以 反之亦然 注意 我知道如何使用这两种方法 我想知道这些方法之间的主要区别以及我们何时需要使用 Source http www globalne
  • OpenJDK 11:在 Linux 上获取 ClassNotFound,在 Windows 上运行良好

    我们有一个基于桌面的 swing 应用程序 可以在 Oracle JDK 1 8 上正常运行 迁移到 OpenJDK 11 后 我们遇到了一些未找到的类异常com sun java swing Painter 我们通过生成一个包含一些类的捆
  • 有没有办法在redis中获取客户端IP?

    我进行了网络搜索 但没有找到任何相关内容 我正在集群上运行redis 并且想找出哪台机器正在连接到redis 特别是当没有机器应该连接 但redis仍然说某些机器已连接时 提前致谢 使用 MONITOR 只会显示实际向 Redis 发送流量
  • mysql 小数点四舍五入

    我是 mysql 的新手 需要一些基本的东西 我需要像这样四舍五入小数 21 4758 应该是 21 48 0 2250 应为 0 22 23 0850 应为 23 08 22 9950 应该是 22 99 我尝试了很多事情但没能成功 Th
  • 在Python中处理从源目录到目标目录的一组文件

    Being 全新的在 python 中 我试图对 python 中的一组文件运行命令 该命令需要源文件和目标文件 我实际上使用的是 imagemagickconvert如下例所示 我可以提供源目录和目标目录 但是我不知道如何轻松保留从源目录
  • 为什么允许使用子类的构造函数实例化父类对象?

    考虑以下 public class parent int x parent x 5 public class child extends parent int y child super y 10 public static void ma
  • Android Rss 图片问题

    大家好 我对 Android 开发比较陌生 正在为新闻网站创建 RSS 阅读器 我遇到的问题是我想要获取图像的 rss feed 的网站的类型为 我为 android 上的代码所做的是 2 个类 RssItem 和 RssItem Disp