android - 如何在位图上绘制粗体文本?

标签 android bitmap android-canvas paint

我想要一个带有粗体文本的位图图标来在 map 上绘制它。我有一个 fragment 可以在图像上写文字:

Bitmap icon = BitmapFactory.decodeResource(PropertyMapList.this.getResources(),
        R.drawable.location_mark);
TextPaint paint = new TextPaint();
paint.setColor(Color.BLACK);
paint.setTextSize(14);
paint.setFakeBoldText(true);
//paint.setTextAlign(Align.CENTER);
Bitmap copy = icon.copy(Bitmap.Config.ARGB_8888, true); 
Canvas canvas = new Canvas(copy);
//canvas.drawText(jsonObj.getString("district_name"), 5, canvas.getHeight()/2, paint);
String districtName = jsonObj.getString("district_name");
StaticLayout layout = new StaticLayout((districtName.length()>25 ? districtName.substring(0, 24)+"..":districtName)+"\n"+jsonObj.getString("total_properties"), paint, canvas.getWidth()-10,Layout.Alignment.ALIGN_CENTER, 1.3f, 0, false);
canvas.translate(5, canvas.getHeight()/2); //position the text
layout.draw(canvas);

setFakeBoldText(true) 对我不起作用。我希望在 Bitmap 上绘制的文本加粗。

最佳答案

使用 Paint 对象上的 setTypeface 方法将字体设置为启用粗体样式的东西。

paint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));

关于android - 如何在位图上绘制粗体文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17926522/

相关文章:

java - 如何读写android系统目录(内部存储)中的文件

android - 为什么 marginBottom 不起作用?

Android Canvas 绘图不可见

java - Canvas OnDraw方法

android - 在 LinearLayout 下方对齐 RecyclerView

android - 将 Android Play 服务包含到 APK

android - setColorFilter 不适用于 Android < 2.2

android - 在 Android 应用程序中显示来自计算机的真实设备中的图像

python - 将 Mono8 图像缓冲区转换为 wx.Bitmap 中 wxPython 中的可显示格式 Phoenix in Python

java - 在 SomeView 类 onDrawBitmap 方法中使位图适合屏幕