2010-09-23 3 views
15

Есть ли способ отображения вида, например TextView, в боковом направлении с использованием файла макета XML? Я знаю, что вы можете поворачивать представление, используя код в действии, но есть ли способ сделать это с помощью макета?Боковое представление с XML Android

ответ

22

Существует, но нового в 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" /> 

Я попробовал это в 2.2, 2.3.1 и 2.3.3, и "андроид: вращение" WASN» юридический.

Он работал в версии 3.0 на эмуляторе, но это было странно. Я также добавил paddingTop = "90dp" к нему (чтобы получить его от другого компонента в тестовом приложении, в котором я его пробовал), и он не только переместил на на экран, но и на справа (вдали от вверху текста, так как он вращается на 270 градусов). У меня нет реального устройства Honeycomb для тестирования, но похоже, что вращение и отступы/поля могут не совпадать.

Существует также метод android.view.View#setRotation(double), который был добавлен в API 11, который модифицирует это свойство из кода. Кроме того, помимо вращения, есть rotationX, rotationY, pivotX, pivotY, scaleX, scaleY и переводX, переводY. Я еще не играл с кем-то из них.

Существует список all the changes in API 11.

Но я подозреваю, что вы хотели чего-то, что не ограничивается только Honeycomb. Насколько я знаю, нет.

+0

Это старый вопрос, но спасибо за ответ - я рад узнать, что он появился в сотах. – ramblinjan

+0

Могу ли я использовать поворот в API 19? –

3

Дэвид прав, вращение будет работать, но в SDK что-то испортилось. Графический макет заставит текст перемещаться влево или вправо (и, возможно, выключен экран), поэтому он, НО, когда я запускаю его на своем Xoom, он работает так, как ожидалось. Поэтому попробуйте настройки на устройстве API 11, чтобы увидеть, как это влияет.

Кроме того, похоже, что он делает что-то с шириной и высотой. Единственный способ заставить его работать - сделать квадрат текста квадратным. Другими словами, если вам обычно требуется только 100dp в ширину по 25dp с высоким текстом, сделайте его 100dp x 100dp, затем поверните его и попробуйте. Кроме того, верх/низ становится левым/правым и т. Д., Когда вы поворачиваете на 90 градусов.

Не могу понять, что такое RotationX/Y. Кажется, я ничего не делаю для меня.

Смежные вопросы