EDIT: plus générique façon de faire qui ne repose pas sur le type de mise en page (autres que c'est un type de mise en page qui prend en charge les marges):
public static void setMargins (View v, int l, int t, int r, int b) {
if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams p = (ViewGroup.MarginLayoutParams) v.getLayoutParams();
p.setMargins(l, t, r, b);
v.requestLayout();
}
}
Vous devriez vérifier les docs pour TextView. Fondamentalement, vous aurez envie d'obtenir le TextView de LayoutParams objet, et de modifier les marges, puis revenir à la TextView. En supposant que c'est dans un LinearLayout, essayez quelque chose comme ceci:
TextView tv = (TextView)findViewById(R.id.my_text_view);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
params.setMargins(0, 0, 10, 0); //substitute parameters for left, top, right, bottom
tv.setLayoutParams(params);
Je ne peux pas le tester dès maintenant, donc mon casting peut être désactivé par un peu, mais le LayoutParams sont ce qui doit être modifié pour changer la marge.
NOTE
N'oubliez pas que si votre TextView est à l'intérieur, par exemple, un
RelativeLayout, il faut utiliser le RelativeLayout.LayoutParams au lieu de
LinearLayout.LayoutParams