Android的布局问题:旋转TextView

时间:2011-01-08 22:19:24

标签: android textview

我正在构建一个Android应用程序,我必须以类似表格的格式表示数据。 所以我正在使用TableLayout;问题是我必须绘制一个旋转的字符串,如下面的原始示例所示:

alt text

如何创建布局以便能够显示'2011'旋转?

提前致谢和问候! 角

2 个答案:

答案 0 :(得分:7)

扩展TextView类并覆盖onDraw方法。

@Override
protected void onDraw(Canvas canvas) {
     canvas.save();
     canvas.rotate(90, xPivot, yPivot);
     super.onDraw(canvas);
     canvas.restore();

} 

答案 1 :(得分:0)

有点晚了但也许别人可能需要这个。

您也可以使用xml-layouts来完成此操作。因为你想要一个类似桌子的"格式,我建议你为你的目的使用GridLayout。

在这里,您可以定义TextView并将它们分配给所需的行和列。使用参数android:layout_column="..."android:layout_row="..."告诉TextView它应该出现在哪一列和哪一行。

从API11开始,您可以使用名为android:rotation="..."的xml属性来旋转TextView。该属性使用float值,该值表示旋转TextView的角度。

如果您正在为API14及更高版本开发,可以使用android:layout_rowspan="..."属性在GridLayout中生成rowspan

例如一个小代码:



<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- column 0 start -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="0"
        android:text="ABC" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="1"
        android:layout_rowSpan="3"
        android:rotation="-90.0"
        android:layout_gravity="center_vertical"
        android:text="2011" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="0"
        android:layout_row="4"
        android:text="DEF" />
    <!-- column 0 end -->
    
    <!-- column 1 start -->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="0"
        android:text="XXXXX" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="1"
        android:text="XXXXX" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="2"
        android:text="XXXXX" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="3"
        android:text="XXXXX" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_column="1"
        android:layout_row="4"
        android:text="XXXXX" />
    <!-- column 1 end -->
</GridLayout>
&#13;
&#13;
&#13; 这是一个小截图,如何布局 screenshot of the given layout example