有没有办法使用XML布局文件横向显示View,例如TextView?我知道你可以使用活动中的代码来旋转视图,但有没有办法只使用布局?
答案 0 :(得分: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中尝试了这个,而“ android:rotation ”不合法。
它在模拟器上的3.0工作,但它很奇怪。我还为它添加了paddingTop =“90dp”(让它远离我尝试过的测试应用程序中的另一个组件),它不仅将向下移动屏幕,还移动到右(远离文本顶部,因为它旋转了270度)。我没有一个真正的Honeycomb设备可供测试,但看起来旋转和填充/边距可能无法很好地协同工作。
API 11中还添加了android.view.View#setRotation(double)
方法,可以从代码中调整此属性。除旋转外,还有rotationX,rotationY,pivotX,pivotY,scaleX,scaleY和translationX,translationY。我还没有玩过任何一个。
有一个all the changes in API 11列表。
但我怀疑你想要的东西不仅限于Honeycomb。据我所知,没有。
答案 1 :(得分:3)
大卫是对的,旋转将会起作用,但我相信SDK中有些东西搞砸了。图形布局将导致文本向左或向右移动(并且可能在屏幕外),所以当我在Xoom上运行它时,它会按预期工作。因此,请尝试使用API 11设备上的设置来查看它的影响。
此外,它看起来好像也有宽度/高度。我可以让它工作的唯一方法是使文本视图方块。换句话说,如果你通常只需要一个宽100dp到25dp的高文本视图,请将其设为100dp x 100dp然后旋转并尝试。此外,当您旋转90度时,顶部/底部变为左/右等。
我无法弄清楚RotationX / Y的作用。它似乎对我没有任何作用。