按钮文本使用标记singleLine旋转不正确的工作

时间:2013-02-27 07:31:07

标签: android button canvas rotation

我有一个按钮:

public class MyButton extends Button{
       private float degrees;
       public MyButton(Context context) {
           super(context);
       }

       public MyButton(Context context, AttributeSet attrs, int defStyle) {
           super(context, attrs, defStyle);
       }

       public MyButton(Context context, AttributeSet attrs) {
           super(context, attrs);
       }

       @Override
       protected void onDraw(Canvas canvas) {
           canvas.save();
           canvas.rotate(degrees, this.getWidth()/2, this.getHeight()/2);
           super.onDraw(canvas);
           canvas.restore();
       }

       protected void rotateTextInButton(float degrees){
           this.degrees = degrees;
       }
}

然后我创建了一个按钮MyButton mBtn = new MyButton(this),当我使用mBtn.setSingleLine(true)时,方法rotateTextInButton()仅适用于0360度。

如果从代码中删除mBtn.setSingleLine(true) - 目前都可以正常工作。

有可能解决这个问题吗?

P.S。我必须在按钮上使用单行并能够在按钮内旋转文本。

1 个答案:

答案 0 :(得分:0)

不使用mBtn.setSingleLine(true),而是使用mBtn.setHorizontallyScrolling(true)。希望,这将有助于你...