2010-09-23 10 views
15

¿Hay alguna manera de mostrar una vista, como una vista de texto lateral utilizando el archivo de diseño XML? Sé que puedes rotar la vista usando el código en una actividad, pero ¿hay alguna manera de hacerlo con el diseño?Vista lateral con XML Android

Respuesta

22

Existe, pero es nuevo en la API 11 (Android 3.0):

<TextView 
    android:id="@+id/rotated" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:rotation="270" 
    android:textSize="32sp" 
    android:textColor="#44CC44" 
    android:text="@string/rotated" /> 

He intentado esto en 2.2, 2.3.1, 2.3.3 y, y "androide: rotación" wasn' t legal

Funcionó en 3.0 en el emulador, pero fue extraño. También agregué paddingTop = "90dp" a él (para quitarlo de otro componente en la aplicación de prueba lo intenté), y no solo movió hacia abajo la pantalla, sino también a derecho (lejos de la parte superior del texto, ya que se rotó 270 grados). No tengo un dispositivo Honeycomb real para probar, pero parece que la rotación y el relleno/márgenes podrían no funcionar bien juntos.

También hay un método android.view.View#setRotation(double) que se ha agregado en API 11 que modifica esta propiedad del código. Y además de la rotación, hay rotationX, rotationY, pivotX, pivotY, scaleX, scaleY y translationX, translationY. No he jugado con ninguno de ellos todavía.

Hay una lista de all the changes in API 11.

Pero sospecho que querías algo que no solo se limite a Honeycomb. Hasta donde yo sé, no hay.

+0

Esta es una vieja pregunta, pero gracias por la respuesta. Me alegra saber que apareció en honeycomb. – ramblinjan

+0

¿Puedo seguir usando la rotación en la API 19? –

3

David tiene razón, la rotación funcionará, pero creo que algo está mal en el SDK. El diseño gráfico hará que el texto se mueva hacia la izquierda o hacia la derecha (y posiblemente fuera de la pantalla), pero PERO cuando lo ejecuto en mi Xoom, funciona como se esperaba. Intente la configuración en un dispositivo API 11 para ver su efecto.

Además, parece que también hace algo con el ancho/alto. La única forma en que puedo hacer que funcione es hacer que la vista del texto sea cuadrada. En otras palabras, si normalmente solo necesita una vista de texto de 100dp de ancho por 25dp de alto, hágalo de 100dp x 100dp, luego gírelo y pruébelo. Además, arriba/abajo se convierte en izquierda/derecha, etc. cuando gira 90 grados.

No puedo entender qué hace RotationX/Y. Parece que no hace nada por mí.

Cuestiones relacionadas