2011-01-08 2 views
5

Я создаю приложение для Android, на котором я должен представлять данные в виде таблицы. Так что я использую TableLayout; проблема заключается в том, что я должен нарисовать повернутую строку, как в следующем примере сырого:Проблема макета с Android: повернутый TextView

alt text

Как я могу создать свой макет, чтобы иметь возможность показать «2011» поворачиваются?

Спасибо заранее и приветствую! c.

ответ

7

Расширить класс TextView и переопределить метод onDraw.

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

} 
+0

Прохладный. Спасибо; но ... если я поворачиваю TextView в ячейке TableRow, мне также нужно сделать вид ROWSPAN, потому что 2011 год должен использовать 3 строки ... как я могу это сделать? – Cris

+1

Rowspan невозможно AFAIK. Вам нужно будет поместить это повернутое представление и взгляды рядом с ним внутри RelativeLayout или другой группы представлений. Взгляните на этот вопрос: http://stackoverflow.com/questions/2189986/android-table-layout-rowspan – Cristian

+0

Большое спасибо, ваша ссылка, несомненно, поможет мне! – Cris

0

Немного поздно, но, возможно, кому-то это может понадобиться.

Вы также можете использовать xml-layouts. Поскольку вы хотите использовать «табличный» формат, я рекомендую использовать GridLayout для ваших целей.

Здесь вы можете определить свой TextViews и назначить их строке и столбцу, который вы хотите. Используйте параметры android:layout_column="..." и android:layout_row="...", чтобы сообщить TextView, в котором должен отображаться столбец и строка.

Начиная с API11 вы можете использовать атрибут xml под названием android:rotation="..." для вращения вашего TextView. Атрибут использует значение float, которое представляет угол поворота вашего TextView.

Условный вы разрабатываете для API14 и выше вы можете использовать атрибут android:layout_rowspan="..." для генерации RowSpan в GridLayout

Например немного код:

<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>
Это небольшой скриншот, как выглядит макет screenshot of the given layout example

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