我的应用程序是在画布中绘制文本它的工作正常。我的文本很大的问题是在画布之外。
例如text = “你好吗”它正确地适合画布。但是当text = “你好,你好吗” 像lenghthy text.it走出画布外面。有人帮助我。谢谢你!
canvas1.drawColor(Color.BLACK);
canvas1.drawBitmap(resizeImage1,10,5, null);
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(25);
paint.setColor(Color.BLUE);
paint.setFakeBoldText(true);
paint.setTextSize(30);
canvas1.drawText(mytext, 10,175, paint);
答案 0 :(得分:1)
使用静态布局,即使您通过自动对齐文本将文本增加一些限制,也会自动对齐文本。
Rect bounds = new Rect(x1, y1, x2, y2);// set the bounds
String textOnCanvas = "text to be wriiten";
StaticLayout sl = new StaticLayout(textOnCanvas, textPaint,
bounds.width(), Layout.Alignment.ALIGN_CENTER, 1, 1, true);
canvas.save();
float textHeight = getTextHeight(textOnCanvas, textPaint);
int numberOfTextLines = sl.getLineCount();
float textYCoordinate = bounds.exactCenterY() -
((numberOfTextLines * textHeight) / 2);
//text will be drawn from left
float textXCoordinate = bounds.left;
canvas.translate(textXCoordinate, textYCoordinate);
//draws static layout on canvas
sl.draw(canvas);
canvas.restore();
答案 1 :(得分:0)
int IMAGE_WIDTH = text.length();
canvas1.drawBitmap(resizeImage1,IMAGE_WIDTH,5,null);
答案 2 :(得分:0)
非常坦率地说你超过了位图的宽度。
每个画布都有一个与之关联的位图,位图的宽度可能小于文本的宽度。
因此,当您尝试绘制文本时,它将超出位图的边界,因此您无法看到文本的其余部分。
尝试增加位图的大小。