ImageViewを次のように設定しました。
<ImageView Android:id="@+id/dl_image"
Android:layout_width="60dp"
Android:background="@drawable/pictureframe"
Android:layout_height="wrap_content"
Android:layout_marginRight="10dp"
Android:layout_alignParentLeft="true"
Android:layout_centerVertical="true"
Android:adjustViewBounds="true"
Android:scaleType="fitCenter"/>
Layout_widthが60dpに固定されていることに注意してください。オンラインで取得したコンテンツに応じて、この幅を90 dpまたは120 dpに変更します(画像のアスペクト比を維持します)。
SetLayoutParamsを使用しようとしましたが、LayoutParams(120、LayoutParams.WRAP_CONTENT)を渡すと例外がスローされます。気に入らないようです。
可能であれば、大きなサイズ用に別のImageViewを作成しないようにしています。
既存のビューで作業している場合、LayoutParams
の新しいセットを最初から作成するのは大変な作業になる可能性があります。代わりに、ビューの既存のLayoutParamを取得して編集し、ビューに適用して、setLayoutParams()
を使用してLayoutParamを更新できます。
ImageView imageView = findViewById(R.id.dl_image);
LayoutParams params = (LayoutParams) imageView.getLayoutParams();
params.width = 120;
// existing height is ok as is, no need to edit it
imageView.setLayoutParams(params);
正しいタイプのLayoutParams
をインポートしてください。この場合、コメントしたように、LayoutParams
のViewGroup
を使用できます。特定のタイプのビューに固有のパラメーター(RelativeLayout
sの配置など)を設定している場合は、そのタイプのビューのLayoutParams
をインポートする必要があります。
あなたはそれをすべて同じように行うことができます
ImageView imageView = findViewById(R.id.dl_image);
imageView.getLayoutParams().width = 120;