2012-06-19 52 views
2

如何使自定義Edittext,以便它看起來像在Android中旋轉45度,它應該可編輯,以便用戶可以在旋轉的Edittext上輸入文字。我試了一下。但我沒有得到任何解決方案。請給一些想法做到這一點。如何製作自定義Edittext,使其看起來像在45度旋轉Android

+3

在API級別11+,用['setRotation()'](http://developer.android.com/reference/android/view/View.html#setRotation(浮點))定期' EditText'。 – CommonsWare

回答

0

我找到了一種不同的方式,它工作。

EditText lEditTxt = (EditText)findViewById(R.id.Edit_ID); 
     Animation lAnim = new RotateAnimation(0, -45, 250, 50); 
     lAnim.setRepeatCount(Animation.INFINITE); 
     lEditTxt.startAnimation(lAnim); 
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
5

你可以嘗試重寫的EditText的onDraw方法是這樣的...

@Override 
protected void onDraw(Canvas canvas) { 
    canvas.save(); 
    canvas.rotate(45.0f,xpivot,ypivot); //rotate around (x,y) pivot point 
    super.onDraw(canvas); 
    canvas.restore(); 
} 

我沒有測試過這一點,但我認爲它應該工作。

+0

這將做到這一點。爲了澄清,你將不得不編寫一個自定義的'RotatedEditText extends EditText',並且這個+構造函數可以是唯一的東西。 – edthethird

+1

我認爲你將不得不做一些與觸摸事件有關的額外工作。你所做的只是繪製旋轉的小部件。 – CommonsWare

+0

感謝大家的快速回復。 –

0

「自定義EditText」表示您擴展EditText並重寫繪製方法,以您想要的方式繪製文本。