Есть ли способ отобразить представление, например TextView в боковом направлении, используя файл макета XML? Я знаю, что вы можете поворачивать представление, используя код в действии, но есть ли способ сделать это с помощью макета?
Боковой вид с XML-Android
Ответ 1
Существует, но это новое в 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, а " android: rotation" не был законным.
Он работал в версии 3.0 на эмуляторе, но это было странно. Я также добавил paddingTop = "90dp" к нему (чтобы убрать его от другого компонента в тестовом приложении, в котором я его попробовал), и он не только перемещался по экрану, но и справа (в стороне от текста, так как он вращается на 270 градусов). У меня нет реального устройства Honeycomb для тестирования, но похоже, что вращение и отступы/поля могут плохо сочетаться.
Существует также метод android.view.View#setRotation(double)
, который был добавлен в API 11, который модифицирует это свойство из кода. Кроме того, помимо вращения, есть rotationX, rotationY, pivotX, pivotY, scaleX, scaleY и переводX, переводY. Я еще не играл с кем-то из них.
Существует список всех изменений в API 11.
Но я подозреваю, что вы хотели чего-то, что не ограничивается только Honeycomb. Насколько я знаю, это не так.
Ответ 2
Дэвид прав, вращение WILL работает, но в SDK я верю что-то испорченное. Графический макет заставит текст перемещаться влево или вправо (и, возможно, выключен экран), поэтому он, НО, когда я запускаю его на своем Xoom, он работает так, как ожидалось. Поэтому попробуйте настройки на устройстве API 11, чтобы увидеть, как это влияет.
Кроме того, похоже, что он делает что-то с шириной и высотой. Единственный способ заставить его работать - сделать квадрат текста квадратным. Другими словами, если вам обычно требуется только 100dp в ширину по 25dp с высоким текстом, сделайте его 100dp x 100dp, затем поверните его и попробуйте. Кроме того, верхний/нижний становится левым/правым и т.д., Когда вы поворачиваете на 90 градусов.
Я не могу понять, что делает RotationX/Y. Кажется, я ничего не делаю для меня.