How to add border to simple tablelayout programmatically

纵饮孤独 提交于 2019-12-23 03:22:16

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!