2013-03-26 4 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); 

Как вы можете видеть, в этом мире кода я установил цвет фона TextView. Я хочу отделить оба этих TextView друг от друга, так что их цвета фона будут разделены линией. Я не хочу, чтобы они подключались. Насколько я понимаю, это было бы возможно, если бы я мог установить поля TextView, но, как я знаю, TextView не могут этого сделать.Как установить поля для TextView программно?

+0

Где вы собираетесь добавить это TextViews? – Triode

+0

Почему вы не добавляете представление в файле XML ... как этот

ответ

56

установить в LayoutParams.

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

@SanjayKumar Нету, API-уровень 1 может использовать этот вызов. Я сделал пример, основанный на этом ответе. check https://github.com/shanwu/shanwu_coding_base/tree/programatically_add_textview_example – shanwu

+0

Я использую API 14, и он работает как шарм – iversoncru

+0

В каком блоке он задает поле, означает в dp, px, sp или что-то еще? –

0

использовать формы в android. В фигурах что-то называется stroke. Используя это, вы можете видеть границу. см. here, и here.

tv1.setBackgroundResource(R.layout.your_shape); 

Я думаю, что это вы хотите. Поэтому я надеюсь, что это поможет вам.

спасибо.

0

Это один должно быть судят

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); 
     params.setMargins(10,20,30,20); 
     txt_gender.setLayoutParams(params); 
Смежные вопросы