2013-12-04 3 views
0

enter image description hereAndroid - Добавить линии на TableLayout с TableRow

Привет! Это мой TableLayout с TableRow и Button для каждой ячейки. Я хочу вертикальную и горизонтальную линию для отдельных ячеек с атрибутами XML.

 <TableLayout 
      android:id="@+id/tableLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="200dp" 
      android:background="#fff" 
      android:shrinkColumns="*" 
      android:stretchColumns="*" > 

      <TableRow 
       android:id="@+id/table0" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:gravity="center_horizontal" > 

       <TextView 
        android:id="@+id/x" 
        android:text="" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/LUN" 
        android:text="LUN" 
        android:textStyle="bold" /> 

        ..... 

       <TextView 
        android:id="@+id/VEN" 
        android:text="VEN" 
        android:textStyle="bold" /> 

       <TextView 
        android:id="@+id/SAB" 
        android:text="SAB" 
        android:textStyle="bold" /> 
      </TableRow> 

      <TableRow 
       android:id="@+id/table1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 

       <TextView 
        android:id="@+id/o1" 
        android:text="1°" > 
       </TextView> 

       <Button 
        android:id="@+id/bLUN1" 
        android:layout_width="15dp" 
        android:layout_height="27dp" /> 

       <Button 
        android:id="@+id/bMAR1" 
        android:layout_width="15dp" 
        android:layout_height="27dp" /> 

       ..... 

       .... 
      </TableRow> 

      <TableRow 
       android:id="@+id/table2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 

       <TextView 
        android:id="@+id/o2" 
        android:text="2°" /> 

       <Button 
        android:id="@+id/bLUN2" 
        android:layout_width="15dp" 
        android:layout_height="27dp" /> 

       .... 

Итак, я бы хотел использовать строки, как простой вид, но я не знаю, как, извините за плохой английский!

ответ

2

Создайте форму XML, как это и сохранить его в вытяжке папке ,

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

<stroke android:width="2px" 
    color="#000000" /> 

</shape> 

установить этот как фон для каждой ячейки.

+0

Будет ли это решение поддерживать границу для каждой ячейки, если меняется ориентация устройства? Мне это нравится, потому что это так просто. – mttdbrd

+0

Да, он будет поддерживать границу, но запустите ее и проверьте, как граница может быть тонкой по краям и толстой между ними. Чтобы решить эту проблему, вам нужно будет установить границу границы одинаковой ширины для всей таблицы. –

1

Из документации:

TableLayout контейнеры не отображаются линии границ для своих строк, столбцов или ячеек.

Поскольку это подкласс View, в методе OnDraw() для TableLayout вы можете рисовать линии границ, как это:

myPaint.setColor(0xff000000); 
//horizontal lines 
for(int i = 2; i < heightfactor + 1; i++) 
    c.drawLine(0, horz_spacing_factor * i, cwidth, horz_spacing_factor * i, myPaint); 
//vertical lines 
for(int i = 2; i < widthfactor + 1; i++) 
    c.drawLine(vert_spacing_factor * i, 0, vert_spacing_factor * i, cwidth, myPaint); 
Смежные вопросы