利用canvas画text时的换行实现

来源:互联网 发布:ahc淘宝旗舰店真的吗 编辑:程序博客网 时间:2024/06/07 23:08

private void drawText(String str,Paint pa,Canvas ca) {

float[] widths ;

float toalwidth = 0 ;

int mTextXPoint  = 10 ; //text的起始点X

int mTextYPoint = 10 ;  //text的起始点Y

widths = new float[50];

int index = 0;

int count = 1 ;

float height = pa.getTextSize();

pa.getTextWidths(str, widths);

for(int i=0 ;i< 50 ;i++) {

Log.e(TAG, "toalwidth =" + toalwidth);

toalwidth = toalwidth + widths[i] ;

if((( mWidth -20 ) < toalwidth) || (widths[i] == 0)) {

String text = str.substring(index, i);

Log.e(TAG, "text =" + text +"  i=" +i +"  index=" +index);

index = i;

if(toalwidth >( mWidth -20 ) ) {

ca.drawText(text, mTextXPoint , mTextYPoint + count *(height + 10), pa);

}else 

ca.drawText(text, (mWidth - toalwidth )/2 , mTextYPoint + count *(height + 10), pa);//mWidth 是屏幕的宽度。保证居中

count ++ ;

toalwidth = 0 ;

if(widths[i] == 0)

return ;

}

}

}

原创粉丝点击