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

Như bạn thấy, trong mã này, tôi đặt màu nền TextView. Những gì tôi muốn làm là tôi muốn tách cả hai của TextView 's từ mỗi khác, để màu nền của họ sẽ được phân cách bằng một dòng. Tôi không muốn họ kết nối. Theo tôi hiểu, sẽ có thể làm như vậy, nếu tôi có thể đặt lề của TextView, nhưng như tôi biết, TextView 's không thể làm như vậy.Cách đặt lề cho TextView theo chương trình?

+0

đâu bạn sẽ thêm các TextView? – Triode

+0

Tại sao bạn không thêm chế độ xem vào tệp xml của mình ... như thế này

Trả lời

56

đặt thành 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, API cấp 1 có thể sử dụng cuộc gọi này. Tôi đã làm một ví dụ dựa trên câu trả lời này. kiểm tra https://github.com/shanwu/shanwu_coding_base/tree/programatically_add_textview_example – shanwu

+0

tôi sử dụng API 14 và nó hoạt động như một nét duyên dáng – iversoncru

+0

Trong đó đơn vị nó sẽ đặt lề, có nghĩa là trong dp, px, sp hoặc cái gì khác? –

0

sử dụng hình dạng trong Android. Trong hình dạng, có tên gọi là stroke. Bằng cách sử dụng này, bạn có thể nhìn thấy biên giới. tham khảo herehere.

tv1.setBackgroundResource(R.layout.your_shape); 

Tôi nghĩ rằng điều này là bạn muốn. Vì vậy, tôi hy vọng điều này sẽ giúp bạn.

Cảm ơn bạn.

0

Cái này nên cố gắng

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT); 
     params.setMargins(10,20,30,20); 
     txt_gender.setLayoutParams(params); 
Các vấn đề liên quan