Comment puis-je définir ImageView
la largeur et la hauteur d'un par programmation?
java
android
android-emulator
android-widget
praveenb
la source
la source
Réponses:
Il peut être trop tard mais pour le bien des autres qui ont le même problème, pour régler la hauteur de l'ImageView:
J'espère que cela t'aides.
Important. Si vous définissez la hauteur après que la mise en page a déjà été «mise en page», assurez-vous d'appeler également:
la source
image_view.getLayoutParams().height = RelativeLayout.LayoutParams.WRAP_CONTENT
.. Si le parent de vue estLinearLayout
remplacéRelativeLayout
parSi votre vue d'image est dynamique, la réponse contenant getLayout échouera avec une exception nulle.
Dans ce cas, la bonne façon est:
la source
ImageView
disparaît. L'astuce consiste à faire en sorte que la partie mise en page (c'est-à-dire<this_part_here>.LayoutParams
) soit la même que celle du parent de l' élémentImageView
. Ainsi, par exemple, si vous avez placé votreImageView
dans unTableRow
dans unTableLayout
, vous devriez l'avoir commeTableRow.LayoutParams
.Cette façon simple de faire votre tâche:
et d'une autre manière si vous voulez donner une taille d'écran en hauteur et en largeur, utilisez le code ci-dessous:
j'espère vous en servir pleinement.
la source
int
-ils des variables si elles ne seront pas réutilisées ailleurs? Semble inutile mais je ne sais pas grand-chose à ce sujet.J'ai joué celui-ci avec
pixel
etdp
.Comment définir par pixel :
Comment définir par dp :
J'espère que cela vous aidera.
la source
Si vous devez définir votre largeur ou hauteur sur
match_parent
(aussi grand que son parent) ouwrap_content
(assez grand pour s'adapter à son propre contenu interne), alorsViewGroup.LayoutParams
a ces deux constantes:Ou vous pouvez les définir comme dans la réponse de Hakem Zaied :
la source
Vous pouvez définir une valeur pour tous les cas.
la source
Le moyen le plus simple et le plus simple de définir un bouton dynamiquement est
La hauteur et la largeur ci-dessus sont en pixels px . 45 étant la hauteur en dp et 42 étant la largeur en dp .
Ainsi, par exemple, si vous avez placé votre bouton dans un TableRow dans un TableLayout, vous devriez l'avoir comme TableRow.LayoutParams
la source
Créez simplement un objet LayoutParams et affectez-le à votre imageView
la source
renvoie la valeur de la hauteur en pixels. Vous devez d'abord obtenir les dimensions de l'écran pour définir correctement les valeurs.
Après avoir obtenu les dimensions de l'écran, vous pouvez définir la largeur et la hauteur de la vue d'image en utilisant les marges appropriées.
la source
Afin de définir l'ImageView et la hauteur par programme, vous pouvez faire
la source
kotlin
la source
Dans le scénario où la taille du widget doit être définie par programme, vérifiez les règles ci-dessous.
LayoutParam
la disposition dans laquelle vous ajoutez cette vue . Dans mon cas, j'ajouteTableRow
donc je devais faireTableRow.LayoutParams
final float scale = getResources().getDisplayMetrics().density; int dpWidthInPx = (int) (17 * scale); int dpHeightInPx = (int) (17 * scale);
TableRow.LayoutParams deletelayoutParams = new TableRow.LayoutParams(dpWidthInPx, dpHeightInPx); button.setLayoutParams(deletelayoutParams); tableRow.addView(button, 1);
la source
Si vous souhaitez simplement ajuster l'image dans la vue d'image, vous pouvez utiliser le "contenu enveloppé" dans la propriété de hauteur et de largeur avec le type d'échelle, mais si vous souhaitez définir manuellement, vous devez utiliser LayoutParams.
Layoutparams est efficace pour définir la hauteur et la largeur de la disposition par programme.
la source
la source