¿Cómo establecer márgenes para TextView mediante programación?


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);

Como puedes ver, en esta paz de código establecí el color de fondo de TextView. Lo que quiero hacer es separar ambos TextView's entre sí, para que sus colores de fondo estén separados por una línea. No quiero que se conecten. Según entiendo, sería posible hacerlo, si pudiera establecer márgenes de TextView, pero como sé, TextView's no son capaces de hacerlo.

Author: Cœur, 2013-03-26

3 answers

Se establece en LayoutParams.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(10,10,10,10);
tv1.setLayoutParams(params);
 72
Author: dmnlk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-20 15:34:12

Usa formas en Android. En formas algo llamado como stroke. Al usar esto se puede ver el borde. consulte aquí , y aquí.

   tv1.setBackgroundResource(R.layout.your_shape);

Creo que esto es lo que quieres. Así que espero que esto te ayude.

Gracias.

 0
Author: Gunaseelan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-26 12:03:04

Este debe ser probado

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, ActionBar.LayoutParams.WRAP_CONTENT);
        params.setMargins(10,20,30,20);
        txt_gender.setLayoutParams(params);
 0
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-14 12:19:49