一、效果图
使用shape图形做边框,表头使用覆盖(背景黑色,textview灰色,留margin),详细内容请查看源码(文章底部)
二、shape代码(边框)
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#ffffff" />
<stroke android:width="0.5dp" android:color="#000000" /> </shape>
|
三、xml代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <TableLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000" android:stretchColumns="*" >
<TableRow>
<TextView android:layout_margin="0.5dp" android:background="#dedcd2" android:gravity="center" android:text="路口" android:width="1dp" android:textSize="20sp" android:textStyle="bold"/> ... ...
</TableRow>
<TableLayout android:id="@+id/table1" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#000" android:stretchColumns="*"/>
</TableLayout>
|
四、Java代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| private List<List> mList = new ArrayList<List>(); ------------------------------------------------------------------------------- private void showData() {
mList.clear();
... ...
mTable1.removeAllViews(); mTable1.setStretchAllColumns(true); for (int i = 0; i < x; i++) { TableRow tableRow = new TableRow(SqliteTableActivity.this); for (int j = 0; j < 4; j++) { TextView tv = new TextView(SqliteTableActivity.this); tv.setText(mList.get(i).get(j + 1) + ""); tv.setWidth(1); tv.setBackgroundResource(R.drawable.table_bg); tv.setPadding(0, 5, 0, 5); tv.setGravity(Gravity.CENTER); tableRow.addView(tv); } mTable1.addView(tableRow); }
}
|
五、项目地址
https://github.com/sdwfqin/AndroidSamples