Ajouter un remplissage à l’affichage par programme

Je suis en train de développer l’application Android v2.2.

J’ai un fragment .

Dans le onCreateView(...) de ma classe fragment, je gonfle une mise en page sur le fragment ci-dessous:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.login, null); return view; } 

Le fichier de mise en page gonflé ci-dessus est (login.xml):

      

Je voudrais définir un paddingTop sur l’élément ci-dessus, et je veux le faire dans le code Java au lieu de le faire en XML.

Comment définir paddingTop à dans mon code de classe Java fragment?

view.setPadding(0,padding,0,0);

Cela définira le remplissage supérieur à -pixels de padding .

Si vous voulez le définir dans dp , vous pouvez effectuer une conversion :

 float scale = getResources().getDisplayMesortingcs().density; int dpAsPixels = (int) (sizeInDp*scale + 0.5f); 

Pour répondre à votre deuxième question:

 view.setPadding(0,padding,0,0); 

comme SpK et Jave le suggèrent, définira le remplissage en pixels. Vous pouvez le définir en dp en calculant la valeur dp comme suit:

 int paddingDp = 25; float density = context.getResources().getDisplayMesortingcs().density int paddingPixel = (int)(paddingDp * density); view.setPadding(0,paddingPixel,0,0); 

J’espère que cela pourra aider!

Si vous stockez le remplissage dans les fichiers de ressources, vous pouvez simplement appeler

  int padding = getResources().getDimensionPixelOffset(R.dimen.padding); 

Il fait la conversion pour vous.

Vous pouvez définir le remplissage à votre vue par grammaticalement au-dessous du code –

 view.setPadding(0,1,20,3); 

Et, il existe également différents types de rembourrage disponibles –

Rembourrage

PaddingBottom

PaddingLeft

PaddingRight

PaddingTop

Ces liens renvoient au site Android Developers. J’espère que cela vous aidera beaucoup.

Utiliser TypedValue est un moyen beaucoup plus propre de convertir en pixels par rapport au calcul manuel:

 float paddingDp = 10f; // Convert to pixels int paddingPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingDp, context.getResources().getDisplayMesortingcs()); view.setPadding(paddingPx, paddingPx, paddingPx, paddingPx); 

TypedValue.applyDimension convertit essentiellement le remplissage souhaité en pixels en fonction des propriétés d’affichage du périphérique actuel.

Pour plus d’informations, voir: TypedValue.applyDimension Docs .

utiliser la méthode ci-dessous pour régler dynamicment le remplissage

 setPadding(int left, int top, int right, int bottom) 

Exemple :

 view.setPadding(2,2,2,2); 

Ecrire en suivant le code pour définir le remplissage, cela peut vous aider.

  TextView ApplyPaddingTextView = (TextView)findViewById(R.id.textView1); final LayoutParams layoutparams = (RelativeLayout.LayoutParams) ApplyPaddingTextView.getLayoutParams(); layoutparams.setPadding(50,50,50,50); ApplyPaddingTextView.setLayoutParams(layoutparams); 

Utilisez LinearLayout.LayoutParams ou RelativeLayout.LayoutParams selon la disposition parente de la vue enfant

Lors du remplissage par programmation, convertissez en valeurs liées à la densité en convertissant pixel en Dp.

Context Contect = MainActivity.this; TextView tview = new TextView (context); tview.setPaddingRelative (10,0,0,0);