2012-06-14 20 views
9

Tengo un EditText, que generalmente se muestra en paralelo al eje X de la pantalla. Quiero mostrarlo de forma oblicua (alrededor de 45 grados con respecto al eje horizontal). ¿Es posible hacer esto en Android? Por favor, guíame en una dirección para que pueda intentarlo.Mostrando edittext oblicuamente en android

Después de obtener los dos enlaces en la respuesta de pawelzeiba, procedo un poco a resolver esto, pero se estancó de nuevo, así que formulé otra pregunta sobre esto. aquí está el link.

Como dijo Gunnar Karisson, hay un método setRotation() en Ver clase introducida en Android 3.0, pero no puedo usarlo como mi solicitud debe trabajar lado a otro Android versión 2.1.

Así que por favor ayúdenme a resolver esto.

Respuesta

1

Después de un largo R & D, tengo éxito al resolver esto creando mi propio texto de edición personalizado, que funciona perfectamente según mi requerimiento.

public class CustomEditText extends EditText { 

private Animation rotateAnim; 
public CustomEditText(Context context) { 
     super(context); 
} 

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

private void createAnim(Canvas canvas) { 
     rotateAnim = new RotateAnimation(0, -45, 250, 50); 
     rotateAnim.setRepeatCount(Animation.INFINITE); 
     startAnimation(rotateAnim); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     // creates the animation the first time 
     if (rotateAnim == null) { 
       createAnim(canvas); 
     } 

} 
} 
3

EditText es una subclase indirecta de View que tiene un campo de rotación se puede establecer con setRotation(float):

myEditText.setRotation (45.0f).

+0

Gunnar, no puedo usar este método ya que mi aplicación debería ejecutarse desde la versión de Android 2.1 en adelante. Necesito alguna solución que pueda funcionar en la versión Android 2.1. Ver mi pregunta editada. –

0

Si el método setRotation() no está disponible para el nivel de la API que está trabajando, entonces su mejor apuesta sería la de crear una subclase de vista y poner en práctica un método setRotation().

+0

Eso es lo que estoy preguntando, ya lo he implementado pero tengo algunos problemas en ese caso. Por favor mira el enlace dado en la pregunta. –