让一个多行 HTML 文本像这样:<div style="color: red;"><b>foo</b></div>
. 它可以是多行的,因为这些条件中至少有一个为真:a)文本很长或 b)至少有一个<br />
。
目的是在画布中绘制此文本,该画布使用Bitmap
.
我编写的最小代码如下(android.graphics.Canvas
,android.graphics.drawable.BitmapDrawable
...):
private BitmapDrawable addTextOnImage(BitmapDrawable bitmapDrawable) {
Bitmap bitmap = ...;
String caption = rich_editor_caption.getHtml();
StaticLayout mTextLayout_caption = StaticLayout.Builder.obtain(caption, 0, caption.length(), mTextPaint, bitmap.getWidth()).build();
Bitmap final_bitmap = Bitmap.createBitmap(bitmap.getWidth(), mTextLayout_caption.getHeight() + bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(final_bitmap);
mTextLayout_caption.draw(canvas);
return new BitmapDrawable(getActivity().getResources(), final_bitmap);
}
如果变量caption
包含 HTML 代码,则不会解释后者。换句话说:标签实际上会显示在结果图像中。
是否可以让 Android 应用程序解释此代码?