2012-06-19 26 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并重写绘制方法,以您想要的方式绘制文本。