android中使用canvas.drawText函数可否设置旋转

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中使用canvas.drawText函数可否设置旋转相关的知识,希望对你有一定的参考价值。

android中使用canvas.drawText函数可否设置旋转,我想用循环绘制很多文字出来,然后让这些文字排列在一个圆形的周围,都是向着圆心的,这样就需要设置旋转,但是drawText没法像drawBitmap那样设置一个Matrix用来旋转,请问有什么别的办法吗,是在同一个canvas中,别告诉我让我设置canvas旋转了

参考技术A 使用Paint类的breakText对Text进行分解 然后分别使用Canvas的drawText进行绘制追问

我现在是把所有的字符用ArrayList存储的,然后用循环一个个的画上去,这样可以,只是不知道如何旋转这些文字

参考技术B 这个要用到path.
Paint paint = new Paint();
paint.srtColor(0X80FF000);
Path path = new Path();
path.addCircle(10,10,5,Direction.CW);
canvacs.drawTextOnPath("aling a path",path,0,0,paint);本回答被提问者采纳

Android Canvas drawText实现中文垂直居中

public void onDraw (Canvas canvas) {
    Rect targetRect = new Rect(50501000200);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    paint.setStrokeWidth(3); 
    paint.setTextSize(80);
    String testString = "Text:中文asdfghjkl";
    paint.setColor(Color.CYAN); 
    canvas.drawRect(targetRect, paint);
    paint.setColor(Color.RED);
    FontMetricsInt fontMetrics = paint.getFontMetricsInt();
    int baseline = targetRect.top + (targetRect.bottom - targetRect.top - fontMetrics.bottom + fontMetrics.top) / 2 - fontMetrics.top;
    // 以下这行是实现水平居中。drawText相应改为传入targetRect.centerX() 
    paint.setTextAlign(Paint.Align.CENTER);  
    canvas.drawText(testString, targetRect.centerX(), baseline, paint);  
}













以上是关于android中使用canvas.drawText函数可否设置旋转的主要内容,如果未能解决你的问题,请参考以下文章

Android Canvas drawText实现中文垂直居中

Nexus 7 上的 Android 4.2:canvas.drawText() 无法正常工作

android中canvas.drawText参数的介绍以及绘制一个文本居中的案例

Android Canvas drawText实现中文垂直居中

android canvas drawText()文字居中

android canvas drawText()文字居中