应用于文本的方法canvas.rotate(90)对于android 4.0-4.1是破坏的

时间:2013-01-17 13:12:49

标签: android rotation textview

我尝试使用canvas.rotate()方法使文本垂直。但是在android 4.0 - 4.1上我得到了一个“跳舞字母”,看截图。什么是hapenning,我该如何解决?请帮帮我。

4.0 - 4.1结果:

enter image description here

正常结果:

enter image description here

这是代码

 @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint textPaint = new Paint();
        textPaint.setColor(Color.WHITE);
        textPaint.setTextSize(30);
        canvas.rotate(90);
        canvas.drawText(text, 0, -getWidth()/2, textPaint);
        canvas.save();
        canvas.restore();
    }

1 个答案:

答案 0 :(得分:0)

简单地说,你可以尝试一下:

使用textView并在其上设置rotateAnimatesetDuration至少设置setFillAfter(true),如下所示:

  RotateAnimation rt = new RotateAnimation(0, 90,textView.getLayoutParams().width/2,textView.getLayoutParams().height/2);
  rt.setDuration(1);                
  rt.setFillAfter(true);
  textView.startAnimation(rt);

它很简单