Android-在画布上绘制纯背景文本,用作位图
我已经构建了一个应用程序,它可以在画布上绘制带有边框的文本,然后将其用作位图并放入谷歌地图标记中。Android-在画布上绘制纯背景文本,用作位图,android,android-canvas,android-bitmap,Android,Android Canvas,Android Bitmap,我已经构建了一个应用程序,它可以在画布上绘制带有边框的文本,然后将其用作位图并放入谷歌地图标记中。 我现在想做的是删除文本框,并在文本后面创建一个纯黑色矩形背景。我尝试了一些方法,但似乎无法在屏幕上显示任何东西 迄今为止的代码: String text = "testText"; //create bitmap Bitmap.Config conf = Bitmap.Config.ARGB_8888; Bitmap bmp = Bitmap.c
我现在想做的是删除文本框,并在文本后面创建一个纯黑色矩形背景。我尝试了一些方法,但似乎无法在屏幕上显示任何东西
迄今为止的代码:
String text = "testText";
//create bitmap
Bitmap.Config conf = Bitmap.Config.ARGB_8888;
Bitmap bmp = Bitmap.createBitmap(300, 100, conf);
//--style text
//text font
Typeface tf = Typeface.create("Helvetica", Typeface.BOLD);
//--set text style, colour, alignment, size
//text
Paint mText = new Paint();
mText.setTextAlign(Align.CENTER);
mText.setColor(Color.WHITE);
mText.setStyle(Paint.Style.FILL);
mText.setTextSize(convertToPixels(context, 12));
mText.setTypeface(tf);
mText.setAntiAlias(true);
//text outline
Paint mTextOutline = new Paint();
mTextOutline.setTextAlign(Align.CENTER);
mTextOutline.setColor(Color.BLACK);
mTextOutline.setStyle(Paint.Style.STROKE);
mTextOutline.setTextSize(convertToPixels(context, 12));
mTextOutline.setTypeface(tf);
mTextOutline.setAntiAlias(true);
mTextOutline.setStrokeWidth(2);
//create and draw text and outline onto canvas
Canvas canvas = new Canvas(bmp);
canvas.drawText(text, 150, 50, mText);
canvas.drawText(text, 150, 50, mTextOutline);
//add text marker to map
textMarker[markerID] = mapView.addMarker(new MarkerOptions()
.title("TEXT_MARKER")
.position(point)
.icon(BitmapDescriptorFactory.fromBitmap(bmp)));
更新:
我现在正在尝试的。似乎只在文本下方返回一条细黑线。
与此相反:
canvas.drawText(text, 150, 50, mTextOutline);
您应该使用画布中的函数之一绘制矩形
当心
mTextOutline.setStyle(Paint.Style.STROKE);
表示仅绘制边框(笔划),而
应该填充矩形
您可以通过使用来测量文本的大小,也许可以稍微增加它,这样您就有了一些边框
当然,在文本之前绘制边框,否则会将其隐藏。谢谢,这非常有用。我正在努力把矩形画成文本大小
mTextOutline.setStyle(Paint.Style.STROKE);
mTextOutline.setStyle(Paint.Style.FILL);