Définir ImageView largeur et hauteur par programme?

Comment définir la largeur et la hauteur d'une image par programme?

  • La reconnaissance d'activité cesse de recevoir des mises à jour lorsque le téléphone est en mode veille (état hors-état de l'écran)
  • Comment changer le réglage de l'alarme du système dynamique du texte
  • Est-ce Fragment.setUserVisibleHint () appelé par Android System?
  • Android essayant d'exécuter mon projet en eclipse et finir avec xml.out
  • Niveau de bruit de requête dans Android
  • Android: comment diffuser l'intention à partir du code natif?
  • En utilisant RxJava pour récupérer l'objet, transformez une liste contenant et utilisez la liste
  • Sockets Web sur le navigateur Android Samsung Galaxy S3?
  • Comment résoudre "Le code de version de votre APK doit être supérieur à 2." dans la Console de développeur de Google Play?
  • SwipeRefreshLayout tire plusieurs fois le comportement (SDK 23)
  • Android SQLite Cursor exception hors limites sur le tableau SELECT count (*) FROM
  • Passer la référence layout_weight à partir des dimensions (dimens)
  • 9 Solutions collect form web for “Définir ImageView largeur et hauteur par programme?”

    Il peut être trop tard, mais pour le bien d'autres personnes qui ont le même problème, de 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é définie, assurez-vous d'appeler également:

     image_view.requestLayout() 

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

    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 façon, si vous souhaitez donner une taille d'é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); 

    L'espoir est plein pour vous.

    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.

    Si vous devez définir votre largeur ou votre hauteur pour match_parent (aussi grand que son parent) ou wrap_content (assez grand pour correspondre à son propre contenu interne), alors ViewGroup.LayoutParams possède 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 configurer comme dans la réponse de Hakem Zaied:

     imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; //... 
     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 à l'aide de marges appropriées.

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

    La meilleure et la plus simple façon de définir un bouton dynamiquement 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 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 l'avoir comme TableRow.LayoutParams

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

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

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

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

     demoImage.getLayoutParams().height = 150; demoImage.getLayoutParams().width = 150; demoImage.setScaleType(ImageView.ScaleType.FIT_XY); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.