0

こんにちは、アクティビティ内の画像ビューの高さと幅のプロパティを変更したかったのですが、次の方法で試しましたが、うまくいきません...

View card_view = getLayoutInflater().inflate(R.layout.card_details1,null);
coupon_img = (ImageView) card_view.findViewById(R.id.coupon_image);
// I tried this ////////
coupon_img.getLayoutParams().height = 20;
coupon_img.getLayoutParams().width = 20;
// I also tried this ////
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
    coupon_img.setLayoutParams(layoutParams);
// also this one ////
coupon_img.setMaxHeight(10);

しかし、imageview src の高さと幅を変更できません。私がやっている間違いはありますか?これを行う方法?助けが必要です...ありがとう...

4

3 に答える 3

4

このコードでは、ImageView実行時に の新しいインスタンスを作成し、それに次元を設定しています。

// SET THE IMAGEVIEW DIMENSIONS
int dimens = 120;
float density = activity.getResources().getDisplayMetrics().density;
int finalDimens = (int)(dimens * density);

LinearLayout.LayoutParams imgvwDimens = 
        new LinearLayout.LayoutParams(finalDimens, finalDimens);
imgAlbumPhoto.setLayoutParams(imgvwDimens);

// SET SCALETYPE
imgAlbumPhoto.setScaleType(ScaleType.CENTER_CROP);

// SET THE MARGIN
int dimensMargin = 5;
float densityMargin = activity.getResources().getDisplayMetrics().density;
int finalDimensMargin = (int)(dimensMargin * densityMargin);

LinearLayout.LayoutParams imgvwMargin = 
        new LinearLayout.LayoutParams(finalDimens, finalDimens);
imgvwMargin.setMargins
(finalDimensMargin, finalDimensMargin, finalDimensMargin, finalDimensMargin);

これにより、 の寸法が設定されImageViewます。ただし、それらはpxになります。dp値が必要な場合は、こちらのコードを使用してください: https://stackoverflow.com/a/9563438/450534

更新しました:

ImageViewXML で既に定義されている既存のサイズを変更するには、次のようにします。

coupon_img.setLayoutParams(new LayoutParams(100, 100));
于 2013-02-21T05:57:02.067 に答える
2

このようなことを試してください...

 LayoutParams params = new LayoutParams(100, 100);
 parantlayout.addView(coupon_img, params);

これが役立つと思います。

于 2013-02-21T05:56:21.953 に答える
2

変更した画像をレイアウトに追加していないと思います..

LinearLayout ll = (LinearLayout)findViewById(R.layout.yourlinearlayout);

image.setLayoutParams(
          new LinearLayout.LayoutParams(
                 bmp.getWidth(), 
                 bmp.getHeight())); 
ll.addView(image);// Then add the image to linear layout
于 2013-02-21T05:57:41.013 に答える