在canvas.drawetext中将文本绘制出视图

时间:2015-11-04 15:46:44

标签: android eclipse canvas

我用画布绘制文字:

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?他们是否与窗户或布局保持距离?

0 个答案:

没有答案