[Android] プログラムでImageViewの幅と高さを設定しますか?


Answers

イメージビューが動的である場合、getLayoutを含む答えはnull例外で失敗します。

その場合、正しい方法は次のとおりです。

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

ImageViewの幅と高さをプログラムで設定するにはどうすればよいですか?




ボタンを動的に設定する最も簡単で簡単な方法は

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

上記の高さと幅はピクセルpxです。 45はdpの高さであり、42はdpの幅である。

 index.setLayoutParams(new <Parent>.LayoutParams(width, height));

たとえば、ボタンをTableLayout内のTableRow内に配置した場合、そのボタンをTableRow.LayoutParamsとして設定する必要があります

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



image_view.getLayoutParams().height 

ピクセル単位で高さの値を返します。 値を適切に設定するには、画面のサイズを最初に取得する必要があります。

 Display display = context.getWindowManager().getDefaultDisplay();
 DisplayMetrics outMetrics = new DisplayMetrics();
 display.getMetrics(outMetrics);
 int screen_height = outMetrics.heightPixels;
 int screen_width = outMetrics.widthPixels;

画面の寸法を取得した後、適切なマージンを使用してイメージビューの幅と高さを設定できます。

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



私はpixeldpでこれを演奏しました。

private int dimensionInPixel = 200;

ピクセル単位で設定する方法:

view.getLayoutParams().height = dimensionInPixel;
view.getLayoutParams().width = dimensionInPixel;
view.requestLayout();

dpで設定する方法:

int dimensionInDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dimensionInPixel, getResources().getDisplayMetrics());
view.getLayoutParams().height = dimensionInDp;
view.getLayoutParams().width = dimensionInDp;
view.requestLayout();

これがあなたを助けることを願っています。