我用画布绘制文字:
canvas.drawText(text);
但有时候线条的大小比窗口大,线条不能完全显示。在我使用此代码计算此文本设置为它的线性布局的宽度。此布局的宽度由以下代码计算:
final LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
int windows_width;
layout.post(new Runnable()
{
@Override
public void run()
{
Log.i("TEST", "Layout width : "+ layout.getWidth());
windows_width=layout.getWidth();
}
});
现在我想要使用这个尺寸,如果它小于文字大小: float size = mPaint.measureText(text);
我将文本分成两个或多个适合屏幕的行: 所以我应该写:
float size=mPaint.measureText(text);
int count=0;
if (size>windows_width){
count=(int) (size/width);
for (int i=0 ;i< count; i++){
int textsize=text.length();
String line=text.substring(i, ((int) (textsize/count))*(i+1)-1);
mPaint.setSubpixelText(true);
canvas.drawText(line, rowX, 100*(i+1), mPaint);
}
}
else {
mPaint.setSubpixelText(true);
canvas.drawText(text, rowX, 100, mPaint);
}
但未显示位于边界附近的字母。为什么呢?
我该如何设置x和y?他们是否与窗户或布局保持距离?