gpt4 book ai didi

Android:将 -tag 替换为 ImageViews

转载 作者:行者123 更新时间:2023-11-27 23:47:33 25 4
gpt4 key购买 nike

我使用 Html.fromHtml 在 TextView 中显示了一些 HTML,效果很好。

有时候这个html会有img-tags,我也想显示这些。

我试过了 Android HTML ImageGetter as AsyncTask但这似乎很慢且不可预测(图像的大小)。

示例 HTML(它可以不同...):

<h2>title</h2><br /><p>TEXT</p>
<p style="text-align: center;">Anyways, fokea?.<img src="http://xxxximages/1048268-11-1426170876314.jpg" alt="" /><br /><br /><br /></p>
<p>Jo, veldig mye blomster og duftelys. elt feil sk. Luksus!</p>
<p style="text-align: center;"><img src="http://xxxx/images/1048268-11-1426171000272.jpg" alt="" /></p>
<p><strong>Håper dere har det hakket bedre enn meg.</strong> </p>

我想过使用 JSOUP 获取所有 img 标签,然后创建 X 数量的 ImageView(并用 Picasso 填充它们)。这工作正常,但图像总是在文本的顶部或底部。

替换每个 img 标签并根据文本在正确的位置为每个标签创建一个新的 ImageView 的最佳解决方案是什么?

编辑:好吧,由于没有人有任何建议,我做了这个快速而肮脏的建议。

ArrayList<String> lines = new ArrayList<>();
Scanner scanner = new Scanner(content);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lines.add(line);
}
scanner.close();


for(int i = 0; i < lines.size(); i++) {
Document doc = Jsoup.parse(lines.get(i));
Elements imgs = doc.select("img");
if(imgs.size() == 0) {
TextView textView = new TextView(this);
textView.setText(Html.fromHtml(lines.get(i)));
maincontainer.addView(textView);
} else {
for(Element el : imgs) {
Element img = el.select("img").first();
String image = img.absUrl("src");
ImageView imageView = new ImageView(this);
imageView.setPadding(0, 10, 0, 10);
imageView.setAdjustViewBounds(true);
Picasso.with(getApplicationContext()).load(image).into(imageView);
maincontainer.addView(imageView);
}
}
}

它看起来和工作起来都很棒,尽管我确信代码远非最佳。

最佳答案

我用这个解决了它:

ArrayList<String> lines = new ArrayList<>();
Scanner scanner = new Scanner(content);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
lines.add(line);
}
scanner.close();

for(int i = 0; i < lines.size(); i++) {
Document doc = Jsoup.parse(lines.get(i));
Elements imgs = doc.select("img");
if(imgs.size() == 0) {
TextView textView = new TextView(this);
textView.setText(Html.fromHtml(lines.get(i)));
maincontainer.addView(textView);
} else {
for(Element el : imgs) {
Element img = el.select("img").first();
String image = img.absUrl("src");
ImageView imageView = new ImageView(this);
imageView.setPadding(0, 10, 0, 10);
imageView.setAdjustViewBounds(true);
Picasso.with(getApplicationContext()).load(image).into(imageView);
maincontainer.addView(imageView);
}
}
}

关于Android:将 <img>-tag 替换为 ImageViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29051009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com