Android 在旋转画布中绘制静态文本

Android 在旋转画布中绘制静态文本,android,canvas,Android,Canvas,所以我有一个onDraw函数 protected void onDraw(Canvas canvas) { Paint paint = mPaint; canvas.drawColor(Color.WHITE); paint.setAntiAlias(true); paint.setColor(Color.BLACK);

所以我有一个onDraw函数

protected void onDraw(Canvas canvas) {
                    Paint paint = mPaint;

                    canvas.drawColor(Color.WHITE);

                    paint.setAntiAlias(true);
                    paint.setColor(Color.BLACK);
                    paint.setStyle(Paint.Style.FILL);

                    int w = canvas.getWidth();
                    int h = canvas.getHeight();
                    int cx = w / 2;
                    int cy = h / 2;

                    canvas.translate(cx, cy);
                    if (mValues != null) {            
                        canvas.rotate(-mValues[0]);
                    }
                    canvas.drawPath(mPath, mPaint);

                    Paint paint1 = new Paint(); 


                    paint1.setColor(Color.BLACK); 
                    paint1.setTextSize(25); 
                    canvas.drawText("Some Text", 10, 25, paint1); 

                }
它所做的是画一个旋转的箭头,文本也在箭头附近旋转,我想要的是在箭头下面的某个地方有一个静态文本。。。或者类似的东西。

使用
canvas.save()
canvas.restore()类似于:

protected void onDraw(Canvas canvas) {
    Paint paint = mPaint;

    canvas.drawColor(Color.WHITE);

    paint.setAntiAlias(true);
    paint.setColor(Color.BLACK);
    paint.setStyle(Paint.Style.FILL);

    int w = canvas.getWidth();
    int h = canvas.getHeight();
    int cx = w / 2;
    int cy = h / 2;

    canvas.save();
    canvas.translate(cx, cy);
    if (mValues != null) {            
           canvas.rotate(-mValues[0]);
    }
    canvas.drawPath(mPath, mPaint);
    canvans.restore();

    Paint paint1 = new Paint(); 


    paint1.setColor(Color.BLACK); 
    paint1.setTextSize(25); 
    canvas.drawText("Some Text", 10, 25, paint1); 

}

希望能有帮助。

我想出来了!您必须执行canvas.save();旋转画布和画布之前。还原();在使用画布绘制静态文本之前!