android - 使用 Paint 绘制 HTML

标签 android bitmap google-maps-android-api-2

我正在尝试通过生成位图并将其作为标记放置在 Google map fragment 上绘制文本。然而,文本需要通过 HTML 进行样式化。我想知道这是否可能。

public static Bitmap createPureTextIcon(String text){

    Paint textPaint = new Paint();
    //textPaint.setTypeface(TypefaceUtil.get(m))
    textPaint.setTextSize(MAP_DISPLAY_TEXT_SIZE);
    textPaint.setAntiAlias(true);
    textPaint.setTextAlign(Paint.Align.LEFT);

    float baseline = -textPaint.ascent(); // ascent() is negative
    int width = (int) (textPaint.measureText(text) + 0.5f); // round
    int height = (int) (baseline + textPaint.descent() + 0.5f);

    CharSequence m = ViewUtil.noTrailingwhiteLines(Html.fromHtml(text));

    //height * 2
    Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(image);
    canvas.drawText(m.toString(), 0, baseline, textPaint);
    //canvas.translate(0, height*4);
    return image;
}

示例 HTML

我主要需要它来渲染 <br />

<p style=\"text-align: center;\">Looking<br />at Earth </p>

最佳答案

使用静态布局

    StaticLayout layout = new StaticLayout(Html.fromHtml(m.toString()), textPaint, width, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
    layout.draw(canvas);

关于android - 使用 Paint 绘制 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048823/

相关文章:

android - 为什么我的移动应用安装量没有显示在我的 Facebook 广告 Activity 下?

android - 为什么文本没有出现在这个按钮上?

android以编程方式模糊可绘制的imageview

c# - 使用锁定语句

android - 在 ActionBarSherlock 中将位图设置为主页图标

java - 存储在类扩展应用程序中的数据返回 null

java - 未为 recyclerView 触发触摸事件 (onClickListener)

android - 免费的图表库,用于在 Android 中创建线条、条形图(堆叠和分组)和组合

java - 在 Google map 方向中将字符串距离转换为双倍

android - 将 Android GoogleMap 放在一个点上,同时缩放到足以包含另一个点