Question Définir la largeur et la hauteur de ImageView par programme?


Comment puis-je définir un ImageViewde la largeur et la hauteur par programme?


538
2018-06-29 21:36


origine


Réponses:


Il est peut-être trop tard, mais pour d'autres qui ont le même problème, pour définir la hauteur de l'ImageView:

image_view.getLayoutParams().height = 20;

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 que vous appelez également:

image_view.requestLayout()

911
2018-03-10 09:45



Si votre vue d'image est dynamique, la réponse contenant getLayout échouera avec une exception nulle.

Dans ce cas, la bonne façon est:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);

195
2018-03-26 17:21



Cette façon simple de faire votre 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 d'une autre manière si vous voulez donner la taille de l'écran en hauteur et en largeur, utilisez le code ci-dessous:

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

j'espère utiliser plein à vous.


41
2017-12-17 13:46



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

J'espère que cela vous aidera.


25
2018-05-24 09:41



Si vous devez définir votre largeur ou hauteur match_parent (aussi grand que son parent) ou wrap_content (assez grand pour convenir à 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 répondre:

imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT;
//...

10
2017-12-25 00:40



La meilleure et la plus simple façon de définir un bouton de manière dynamique est

 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 ci-dessus sont en pixels px. 45 étant la hauteur en dp et 42 étant la largeur de 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 l'avoir comme TableRow.LayoutParams

 index.setLayoutParams(new TableRow.LayoutParams(width, height));

8
2017-12-06 09:22



Vous pouvez définir la valeur pour tous les cas.

demoImage.getLayoutParams().height = 150;

demoImage.getLayoutParams().width = 150;

demoImage.setScaleType(ImageView.ScaleType.FIT_XY);

8
2017-07-27 14:03



Créez simplement un objet LayoutParams et affectez-le à votre imageView

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(150, 150);
imageView.setLayoutParams(params);

5
2018-01-05 06:04



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;

Après avoir obtenu les dimensions de l'écran, vous pouvez définir la largeur et la hauteur de l'image en utilisant les marges appropriées.

 view.getLayoutParams().height = screen_height - 140;
 view.getLayoutParams().width = screen_width - 130 ;

4
2017-10-01 05:59