如何用ImageViews替换youtube iframe标签或缩略图

时间:2019-01-12 21:10:37

标签: java android html android-layout jsoup

我正在开发的应用程序是从博客页面获取内容作为jsoup节点/元素,某些页面包含youtube嵌入式标签iframe

像这样


    <iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/VXD6a_LgBaQ/0.jpg" frameborder="0" height="400" src="https://www.youtube.com/embed/VXD6a_LgBaQ?feature=player_embedded" width="600"></iframe>

我正在寻找一种用imageView替换所有iframe youtube标记并在其上显示缩略图的方法,那就是当用户单击图像时,该应用程序通过其意图打开YouTube应用程序并查看视频。

我发现回答某人here ,他可以用Image Views替换img标签,我成功获取了YouTube链接和缩略图,并在ImageView上查看了图像

Element element = document.body();

                String youtubeThumbnailImageSrc = element.getElementsByClass
                        ("YOUTUBE-iframe-video").attr("data-thumbnail-src");

                String youTubeLink =
                        element.getElementsByClass("YOUTUBE-iframe-video").attr("src");

                Log.e("YouTube thumbnail", youtubeThumbnailImageSrc);
                Log.e("Youtube link", youTubeLink);

                if (youtubeThumbnailImageSrc.isEmpty()) {
                    youtubeThumbnailImagesetVisibility = 8;
                    intent.putExtra("youtubeThumbnailImagesetVisibility",
                            youtubeThumbnailImagesetVisibility);
                } else {
                    intent.putExtra("youTubeThumbnail", youtubeThumbnailImageSrc);
                    intent.putExtra("youTubeLink", youTubeLink);
                }

应该是这样的目的地

1 个答案:

答案 0 :(得分:5)

致电时

 String youtubeThumbnailImageSrc = element.getElementsByClass
                    ("YOUTUBE-iframe-video").attr("data-thumbnail-src");

您只会获得第一个元素的属性值。

您需要手动进行迭代以获取所有链接:

    for (Element e : element.getElementsByClass
            ("YOUTUBE-iframe-video")) {
        String youtubeThumbnailImageSrc = e.attr("data-thumbnail-src");
        System.out.println(youtubeThumbnailImageSrc);
    }