2013-03-26 15 views
30
TextView tv1 = new TextView(this);  
tv1.setPadding(5, 0, 5, 0); 
tv1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 
tv1.setBackgroundColor(Color.parseColor("#0099cc")); 
tv1.setTextColor(Color.WHITE); 
tv1.setTextSize(11); 
tv1.setGravity(Gravity.LEFT | Gravity.BOTTOM); 
tv1.setText("Test1"); 
ll.addView(tv1); 

TextView tv2 = new TextView(this);  
tv2.setPadding(5, 0, 5, 0); 
tv2.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT)); 
tv2.setBackgroundColor(Color.parseColor("#0099cc")); 
tv2.setTextColor(Color.WHITE); 
tv2.setTextSize(11); 
tv2.setGravity(Gravity.LEFT | Gravity.BOTTOM); 
tv2.setText("Test2"); 
ll.addView(tv2); 

Jak widać, w tym spokoju kodu ustawiłem kolor tła TextView. Co chcę zrobić, to chcę oddzielić oba te TextView od siebie, tak aby ich kolory tła były oddzielone linią. Nie chcę, żeby się łączyli. Jak rozumiem, byłoby to możliwe, gdybym mógł ustawić marginesy TextView, ale jak wiem, TextView nie są w stanie tego zrobić.Jak programowo ustawić marginesy dla TextView?

+0

Gdzie idziesz, aby dodać te TextView? – Triode

+0

Dlaczego nie jesteś dodanie widoku w pliku xml ... jak ten

Odpowiedz

56

ustaw na LayoutParams.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(10,10,10,10); 
tv1.setLayoutParams(params); 
+0

@SanjayKumar nope, Poziom API 1 może korzystać z tego połączenia. Zrobiłem przykład na podstawie tej odpowiedzi. sprawdź https://github.com/shanwu/shanwu_coding_base/tree/programatically_add_textview_example – shanwu

+0

używam API 14 i działa jak charm – iversoncru

+0

W której jednostce ustawi margines, czyli w dp, px, sp czy coś innego? –

0

używać kształtów w systemie Android. W kształcie coś, co nazywa się stroke. Używając tego możesz zobaczyć granicę. refer here i here.

tv1.setBackgroundResource(R.layout.your_shape); 

Myślę, że tego chcesz. Mam nadzieję, że to ci pomoże.

Dziękuję.

0

Ten powinien być sądzony

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); 
     params.setMargins(10,20,30,20); 
     txt_gender.setLayoutParams(params); 
Powiązane problemy