- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试使用
将 HTML block 加载到 TextView 中,包括图像URLImageParser p = new URLImageParser(articleBody, this);
Spanned htmlSpan = Html.fromHtml(parsedString, p, null);
顺便说一下,
parsedString 是 HTML。无论如何,它会加载,但是图像没有为它们创建任何空间供它们坐下,因此它们最终与它们上方的文本重叠。这是我的 URLImageParser 文件:
public class URLImageParser implements Html.ImageGetter {
Context c;
View container;
/***
* Construct the URLImageParser which will execute AsyncTask and refresh the container
* @param t
* @param c
*/
public URLImageParser(View t, Context c) {
this.c = c;
this.container = t;
}
public Drawable getDrawable(String source) {
URLDrawable urlDrawable = new URLDrawable();
// get the actual source
ImageGetterAsyncTask asyncTask =
new ImageGetterAsyncTask( urlDrawable);
asyncTask.execute(source);
// return reference to URLDrawable where I will change with actual image from
// the src tag
return urlDrawable;
}
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
URLDrawable urlDrawable;
public ImageGetterAsyncTask(URLDrawable d) {
this.urlDrawable = d;
}
@Override
protected Drawable doInBackground(String... params) {
String source = params[0];
return fetchDrawable(source);
}
@Override
protected void onPostExecute(Drawable result) {
// set the correct bound according to the result from HTTP call
Log.d("height",""+result.getIntrinsicHeight());
Log.d("width",""+result.getIntrinsicWidth());
urlDrawable.setBounds(0, 0, 0+result.getIntrinsicWidth(), 0+result.getIntrinsicHeight());
// change the reference of the current drawable to the result
// from the HTTP call
urlDrawable.drawable = result;
// redraw the image by invalidating the container
URLImageParser.this.container.invalidate();
}
/***
* Get the Drawable from URL
* @param urlString
* @return
*/
public Drawable fetchDrawable(String urlString) {
try {
URL aURL = new URL(urlString);
final URLConnection conn = aURL.openConnection();
conn.connect();
final BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
final Bitmap bm = BitmapFactory.decodeStream(bis);
Drawable drawable = new BitmapDrawable(bm);
drawable.setBounds(0,0,bm.getWidth(),bm.getHeight());
return drawable;
} catch (Exception e) {
return null;
}
}
}
}
有什么想法吗?非常感谢。
最佳答案
您可以将您的硬币容器 c( View )更改为 textView,然后让您的 onPostExecute 看起来像这样:
@Override
protected void onPostExecute(Drawable result) {
// set the correct bound according to the result from HTTP call
Log.d("height",""+result.getIntrinsicHeight());
Log.d("width",""+result.getIntrinsicWidth());
urlDrawable.setBounds(0, 0, 0+result.getIntrinsicWidth(), 0+result.getIntrinsicHeight());
// change the reference of the current drawable to the result
// from the HTTP call
urlDrawable.drawable = result;
// redraw the image by invalidating the container
URLImageParser.this.container.invalidate();
// For ICS
URLImageParser.this.container.setHeight((URLImageParser.this.container.getHeight()
+ result.getIntrinsicHeight()));
// Pre ICS
URLImageParser.this.textView.setEllipsize(null);
}
这将首先绘制图像,然后立即将 TextView 的高度设置为 drawable 的高度 + TextViews 的高度
关于Android ImageGetter 图像重叠文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870312/
谁能帮我弄清楚如何使用 Html.ImageGetter 来使用 html 图像 src 标签显示图像?和例子或好的教程 最佳答案 要从应用程序资源中获取图像,首先在文本文件中插入一个 html 图像
我正在将 HTML 显示到 TextView 中: String html = "Hello " + "" + " This is a test
我正在尝试使用 将 HTML block 加载到 TextView 中,包括图像 URLImageParser p = new URLImageParser(articleBody, this); S
所以我使用 ImageGetter 来显示来自 JSON 博客文章的图像。我在日志中获得了正确的来源,但 URL 在到达 setBounds 时发生了变化。有什么想法吗? 代码: protected
我有一个加载 HTML 内容的 TextView(它也有 img 标签)。我的问题是有些图片太大,导致应用程序崩溃。有什么方法可以使所有图像的大小相同吗? 我的代码示例: St
我有一个 Html.ImageGetter 类,我将它与 Universal Image Loader 一起使用,以加载 标签中的图像,该标签包含在我在线获取的 html json 文件中。 图像加载
好的,我正在为这个而失去理智。我的程序中有一个解析 HTML 的方法。我想包含内联图像,我的印象是使用 Html.fromHtml(string, Html.ImageGetter, Html.Tag
我正在编写一个应用程序来显示来自网站的帖子,并使用 Html.fromHtml 来执行此操作。但是,如果我打开一篇文章,它会立即使用大约 25MB 的内存来加载图像。这是可以接受的,只是重新加载同一篇
我正在编写一个应用程序,它获取 HTML 页面并解析它们以显示在屏幕上。具体来说,此应用程序从留言板中提取 HTML 并列出用户发布的帖子。 问题是帖子中的很多内容都是中的图片标签,所以我需要写一个
我必须在 ListView 中显示一些带有来自 Internet 的图像的 HTML。图像在自定义 Html.ImageGetter 中处理。问题是,我需要可用的 TextView 来将图像下载到里面
我想要做的是,当按下按钮时,图像将出现在编辑文本字段中。 问题是我想多次添加图像 - 这意味着每次单击都会将图像添加到字符串中。 问题是在接下来的代码中,我只能看到最后按下的图像,而之前的图像正在变成
我正在尝试使用 Html.fromHtml 在 Base64 中显示 img 我有一个带有一张图片的 Base64 字符串的标签。 这是我的代码: public class GlossaryAdapt
感谢@Budius 所做的一切努力。 我的应用程序的大部分图像工作可以由 Picasso/Glide 处理,但是,某些图像显示在 TextView 中通过Html.fromHtml 。以及 TextV
我想用 SpannableString 设置一个 TextView,它来自下面的方法: Html.fromHtml(String source, Html.ImageGetter imageGette
我是一名优秀的程序员,十分优秀!