Android cavas将横向字体转换为竖直rotate(),drawText(),setTextAlign()

cavas的drawText()方法可以写字,想把字设置为横向的做法:

1.cavas提供了两个方法rotate(float degrees);      rotate(float degrees,float px,float py);

  Android坐标系讲解,以左上角为原点,向右为x轴正方向,向下为y轴正方向   

 第一个方法是还以原点为新坐标轴的原点,旋转degree的角度为新坐标系

 第二个方法是以(px,py)新坐标轴的原点,旋转degree的角度为新坐标系

旋转90度后的坐标系如下

Android cavas将横向字体转换为竖直rotate(),drawText(),setTextAlign()_第1张图片

2.cavas提供的的方法drawText(String text,float x,float y,Paint paint);

第一个参数是要显示的文字,第二、三个参数是显示的位置,最后一个参数是画笔

关于第二三个参数具体的意思还要看Paint画笔中的setTextAlign()方法的设置

eg:如果设置的是center,则第二三个参数是指文字中间的坐标(x,y)


程序如下:

canvas.rotate(-90);
        //当xyChartPaint的setTextAlign()设置为center时第二、三个参数代表这四个字中点所在的xy坐标

//要想还在原来位置显示的话就设置为(-y,x)
        canvas.drawText("开关状态", -((float)(getHeight()-60)-15-5 - 1/((float)1.6*1) * (getHeight()-60)/2), gridX-15, xyChartPaint);  
        canvas.rotate(90); //改变了坐标系还要再改过来 

paint的配置如下

//绘制XY轴上的字:Y开关状态、X时间
        xyChartPaint.setStyle(Style.FILL);  
        xyChartPaint.setStrokeWidth(1);  
        xyChartPaint.setColor(Color.BLUE);  
        xyChartPaint.setAntiAlias(true);  
        xyChartPaint.setTextAlign(Align.CENTER);  
        xyChartPaint.setTextSize(18);


你可能感兴趣的:(android)