Android 在位图前面绘制自动调整文本
我想在标记图像前绘制文本。但是文本超出了图像的边界。我可以自动调整文本吗?如果是,请给我一个实际的例子。 我使用以下代码来绘制文本Android 在位图前面绘制自动调整文本,android,canvas,bitmap,google-maps-markers,Android,Canvas,Bitmap,Google Maps Markers,我想在标记图像前绘制文本。但是文本超出了图像的边界。我可以自动调整文本吗?如果是,请给我一个实际的例子。 我使用以下代码来绘制文本 paint.setTextSize((int) (11 * scale)); // text shadow paint.setShadowLayer(1f, 0f, 1f, Color.WHITE); // draw text to the Canvas center Rect bounds = new Rect();
paint.setTextSize((int) (11 * scale));
// text shadow
paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);
// draw text to the Canvas center
Rect bounds = new Rect();
paint.setTextAlign(Align.CENTER);
paint.getTextBounds(gText, 0, gText.length(), bounds);
int x=20;
int y=15;
canvas.drawText(gText, x * scale, y * scale, paint);
它显示以下输出
如何调整文本
private TextPaint mTp;
private String mText;
private final static float TEXT_SIZE = 30;
private void drawingSettings()
{
mTp = new TextPaint(Paint.ANTI_ALIAS_FLAG);
mTp.setStyle(Paint.Style.FILL);
mTp.setColor(0xFFCCCCCC);
mTp.setTextSize(TEXT_HEIGHT);
mText = "some text"
}
@Override
public void onDraw(Canvas canvas)
{
int bmpWidth = mBitmap.getWidth();
int textWidth = mTp.mesureText(mText);
float textSize = TEXT_SIZE;
while(mTp.mesureText(text)>bmpWidth)
{
textSize-1;
mTp.setTextSize(textSize);
}
float xPos = 0;
float yPos = 0;
canvas.drawText(mText,xPos,yPos,mTp);
}
<>注意,当优化时,应考虑在OnDew函数之外移动文本大小计算。 它总是显示相同大小的文本,而不适用于较大的文本