问题
How can I add borders to a TableLayout
through code ?
TableLayout in xml
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</TableLayout>
My code
TableLayout prices = (TableLayout)findViewById(R.id.tableLayout1);
prices.setStretchAllColumns(true);
prices.bringToFront();
for(int i = 0; i < 1; i++){
TableRow tr = new TableRow(this);
TextView c1 = new TextView(this);
c1.setText(equipHere);
c1.setTextColor(Color.BLACK);
c1.setTextSize(15);
TextView c2 = new TextView(this);
c2.setText("No of Days("+daysHere+")");
c2.setTextColor(Color.BLACK);
c2.setTextSize(15);
tr.addView(c1);
tr.addView(c2);
prices.addView(tr);
}
回答1:
Create Gradient
into res\xml\table.xml
like:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#C0C0C0"
android:endColor="#505050"
android:angle="90"/>
<corners android:radius="2px" />
</shape>
And set to your TableLayout
background
TableLayout table = (TableLayout)findViewById(R.id.tableLayout1);
table.setBackgroundDrawable(getResources().getDrawable(R.xml.table));
And Programmatically you can achieve like:
GradientDrawable gd = new GradientDrawable(
GradientDrawable.Orientation.TOP_BOTTOM,
new int[] {Color.parseColor("#C0C0C0"), Color.parseColor("#505050")});
gd.setGradientCenter(0.f, 1.f);
gd.setLevel(2);
table.setBackgroundDrawable(gd);
回答2:
Do following:
GradientDrawable gd=new GradientDrawable();
gd.setStroke(2, Color.BLACK);
prices.setBackgroungDrawable(gd);
回答3:
create a xml file with the following code and place in the drawable folder
<corners android:radius="0dp" />
<solid android:color="#FFFFFF" />
<stroke android:width="1sp" android:color="#e9e9e9" />
</shape>
and set the xml as a background resource drawable for the table layout.
来源:https://stackoverflow.com/questions/21932479/how-to-add-border-to-simple-tablelayout-programmatically