2013-02-27 75 views
3

我有一個按鈕:按鈕文本旋轉不正確的工作與標籤SINGLELINE

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),方法只有0360rotateTextInButton()工作。

如果從代碼中刪除mBtn.setSingleLine(true) - 所有工作都正確。

可以解決這個問題嗎?

P.S.我必須在按鈕上使用單行,並能夠在按鈕內部旋轉文本。

回答

0

而不是使用mBtn.setSingleLine(true),請使用mBtn.setHorizontallyScrolling(true)。希望,這將有助於你...

+0

'mBtn.setHorizo​​ntalScrolling(true)'重複預測情況。 – 2013-02-27 07:49:09

+0

是的,但我認爲這是最好的替代方案.... – 2013-02-27 07:50:46

+0

什麼是「最佳替代」?)) – 2013-02-27 14:15:08