Comment puis-je définir la largeur et la hauteur d'un ImageView
par programme?Définir la largeur et la hauteur de ImageView par programme?
Répondre
Il est peut-être trop tard, mais pour le bien des autres qui ont le même problème, pour régler la hauteur du ImageView:
image_view.getLayoutParams().height = 20;
Hope this helps.
Important. Si vous réglez la hauteur après la mise en page a déjà été « aménagé », assurez-vous que vous appelez aussi:
image_view.requestLayout()
Si vous définissez la hauteur après que la mise en page a déjà été «mise en page», veillez à appeler image_view.requestLayout() –
La réponse doit être modifiée pour inclure l'addenda par @Skripi – hosolmaz
Et si j'ai besoin de wrap_content? –
Si votre point de vue d'image est dynamique, la réponse contenant getLayout échouera avec nul exception.
Dans ce cas, la façon correcte est la suivante:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);
si je mets ce code mon image disparaît. Pourquoi?\t \t \t \t ImageView imgLogo = nouvelle ImageView (this); \t \t \t \t \t \t \t \t imgLogo.setImageDrawable (logo); \t \t \t \t LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams (32,32); \t \t \t \t imgLogo.setLayoutParams (layoutParams); \t row.addView (imgLogo); –
Merci pour cette réponse, mettez-moi sur la bonne voie. En tant que note ajoutée, LinearLayout doit être défini sur le type de vue parent de l'image. Par exemple, si votre vue d'image se trouve dans une galerie, vous devez utiliser les paramètres de disposition de la galerie au lieu de LinearLayout, sinon vous aurez des exceptions. – dubj
@ MustafaGüven J'ai eu le même problème que vous, où 'ImageView' disparaît. L'astuce consiste à faire en sorte que la partie layout (c'est-à-dire '
De cette façon simple tâche:
setContentView(R.id.main);
ImageView iv = (ImageView) findViewById(R.id.left);
int width = 60;
int height = 60;
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);
et une autre façon, si vous voulez donner la taille de l'écran en hauteur et en largeur puis utilisez ci-dessous code:
setContentView(R.id.main);
Display display = getWindowManager().getDefaultDisplay();
ImageView iv = (LinearLayout) findViewById(R.id.left);
int width = display.getWidth(); // ((display.getWidth()*20)/100)
int height = display.getHeight();// ((display.getHeight()*30)/100)
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);
espérons utiliser pleinement à vous.
image_view.getLayoutParams().height
renvoie la valeur de hauteur en pixels. Vous devez d'abord obtenir les dimensions de l'écran pour définir correctement les valeurs.
Display display = context.getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
int screen_height = outMetrics.heightPixels;
int screen_width = outMetrics.widthPixels;
Une fois que vous obtenez les dimensions de l'écran, vous pouvez définir la largeur de imageview & hauteur à l'aide des marges appropriées.
view.getLayoutParams().height = screen_height - 140;
view.getLayoutParams().width = screen_width - 130 ;
Le meilleur et le plus simple pour fixer un bouton est dynamiquement
Button index=new Button(this);
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 45, getResources().getDisplayMetrics());
int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, getResources().getDisplayMetrics());
La hauteur et la largeur en pixels ci-dessus sont px. 45 étant la hauteur en dp et 42 étant la largeur en dp.
index.setLayoutParams(new <Parent>.LayoutParams(width, height));
Ainsi, par exemple, si vous avez placé votre bouton dans un TableRow dans un TableLayout, vous devriez avoir comme TableRow.LayoutParams
index.setLayoutParams(new TableRow.LayoutParams(width, height));
Si vous devez régler votre largeur ou la hauteur à match_parent
(aussi grand que son parent) ou wrap_content
(assez grand pour son propre contenu interne), puis ViewGroup.LayoutParams
a ces deux constantes:
imageView.setLayoutParams(
new ViewGroup.LayoutParams(
// or ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT,
// or ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.MATCH_PARENT));
Ou vous pouvez les définir comme dans Hakem Zaied de answer:
imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
//...
osm .... ................... –
créer simplement un objet LayoutParams et l'affecter à votre imageView
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(150, 150);
imageView.setLayoutParams(params);
J'ai joué celui-ci avec pixel
et dp
.
private int dimensionInPixel = 200;
Comment définir par pixel :
view.getLayoutParams().height = dimensionInPixel;
view.getLayoutParams().width = dimensionInPixel;
view.requestLayout();
Comment définir par dp:
int dimensionInDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dimensionInPixel, getResources().getDisplayMetrics());
view.getLayoutParams().height = dimensionInDp;
view.getLayoutParams().width = dimensionInDp;
view.requestLayout();
Espoir cela vous aidera.
Comment ferais-je cela pour une valeur dp spécifique (c'est-à-dire ne pas convertir de px en dp)? – alxcyl
Vous pouvez définir une valeur pour tous les cas.
demoImage.getLayoutParams().height = 150;
demoImage.getLayoutParams().width = 150;
demoImage.setScaleType(ImageView.ScaleType.FIT_XY);
- 1. définir la largeur et la hauteur de ImageView étendu par programmation - android
- 2. Comment puis-je définir la largeur et la hauteur d'un ImageView à la largeur et la hauteur d'un autre ImageView sur le XML?
- 3. comment définir la largeur et la hauteur de alertbox?
- 4. Définir la hauteur et la largeur de EditField sur BlackBerry
- 5. Modifier par programme la largeur/hauteur de ColorBox onClick
- 6. Java - Définir la largeur/hauteur de JLabel
- 7. Réglage de la largeur et la hauteur maximum pour ImageView dans Android
- 8. Définition par programme de la hauteur/largeur de l'image à partir de la base de données
- 9. Positionnement d'une image à l'intérieur d'un ImageView avec la hauteur maximale et la largeur maximale réglées
- 10. Comment utiliser la largeur par rapport à la hauteur?
- 11. Comment régler la hauteur et la largeur de MapView?
- 12. Comment modifier la hauteur de composant personnalisée par programme
- 13. Obtenir la largeur et la hauteur d'origine de l'actioncript
- 14. Comment obtenir et définir la hauteur de fenêtre popup et la largeur dans Internet Explorer
- 15. Comment définir la largeur de la scène et la hauteur dans le projet pur AS3
- 16. Pouvons-nous définir la hauteur et la largeur de la vue Web dans Android
- 17. Ajuster la largeur et la hauteur d'un contrôle (ASP.NET)
- 18. Modification de la largeur et de la hauteur de l'image
- 19. trouver Hauteur et largeur
- 20. Comment définir la largeur/hauteur DIV avec JavaScript dans Firefox
- 21. La largeur dépend de la hauteur
- 22. Comment définir une largeur de la disposition ColumnDefinition de la grille Silverlight sur "*" par programme?
- 23. Flex4 obtenir la hauteur et la largeur d'un mx: Image
- 24. Comment définir la largeur et la hauteur de l'image à 100% avec CSS?
- 25. Comment pouvons-nous définir la largeur et la hauteur de l'application flex en utilisant javascript?
- 26. Comment puis-je définir la largeur et la hauteur du popup de navigation?
- 27. Comment définir la hauteur, la largeur et l'image à l'aide de jquery
- 28. comment définir la largeur et la hauteur de l'image dans vb.net
- 29. Largeur et hauteur de la partie Web dynamique SharePoint
- 30. find La largeur et la hauteur correctes de l'image
Aussi étrange que cela puisse paraître, cette information est assez difficile à trouver. La question mérite plus de votes. – phunehehe
Note de bas de page pour toute personne aux prises avec ce problème provenant d'une autre plateforme. l'option ** "taille et forme pour s'adapter" ** est gérée magnifiquement dans Android; mais c'est difficile à trouver. vous voulez généralement un parent de largeur, un contenu de retour à la ligne, ** adjustViewBounds activé **, scale ** fitToCenter ** et cropToPadding ** false **. alors c'est automatique. J'espère vraiment que ça aide quelqu'un! – Fattie
@JoeBlow - Merci l'homme !! Vous avez économisé beaucoup de temps pour moi – mango