任何人都可以帮我解决如何使用Html.ImageGetter使用html image src标签显示图像?和示例或良好的教程
Lum*_*mis 28
要在文本文件中首先从应用程序资源获取图像,请插入一个html图像标记,如下所示:
<img src="my_image">
Run Code Online (Sandbox Code Playgroud)
请注意,"my_image"只是一个drawable而不是一个路径的名称.然后使用此代码在TextView中使用图像显示文本
myTextView.setText(Html.fromHtml(myText, new ImageGetter() {
@Override public Drawable getDrawable(String source) {
Drawable drawFromPath;
int path =
myActivity.this.getResources().getIdentifier(source, "drawable",
"com.package...");
drawFromPath = myActivity.this.getResources().getDrawable(path);
drawFromPath.setBounds(0, 0, drawFromPath.getIntrinsicWidth(),
drawFromPath.getIntrinsicHeight());
return drawFromPath;
}
}, null));
Run Code Online (Sandbox Code Playgroud)
如果img标记中的源拼写错误,则应用程序将崩溃,因为该方法将无法找到drawable,因此可以添加更多代码以防止此...
这与接受的答案相同,但作为顶级课程(如果你想从不同的地方使用它,那就更好了):
public class ResourceImageGetter implements ImageGetter {
private Context mContext;
public ResourceImageGetter(Context context) {
mContext = context;
}
@Override
public Drawable getDrawable(String source) {
Resources resources = mContext.getResources();
int identifier = resources.getIdentifier(source, "drawable", mContext.getPackageName());
Drawable res = resources.getDrawable(identifier);
res.setBounds(0, 0, res.getIntrinsicWidth(), res.getIntrinsicHeight());
return res;
}
}
Run Code Online (Sandbox Code Playgroud)
kape123的答案肯定对我有帮助.我快到那里了.
容易遗漏的是在Drawable上调用setBounds.Html.ImageGetter帮助文档还提供了一个线索:
如果尚未设置其边界,请确保在Drawable上调用setBounds().