Как вы измените размер ImageView? - PullRequest
16 голосов
/ 10 декабря 2011

Я настроил свой 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. В зависимости от содержимого, которое я приобрел в Интернете, я хочу изменить эту ширину до 90dp или 120dp (при сохранении соотношения сторон изображения).

Я попытался использовать setLayoutParams, но передача LayoutParams (120, LayoutParams.WRAP_CONTENT) вызывает исключение. Кажется, ему это не нравится.

Если возможно, я стараюсь не делать еще один ImageView для больших размеров.

Ответы [ 2 ]

37 голосов
/ 10 декабря 2011

Если вы работаете с существующим представлением, может быть много работы по созданию нового набора LayoutParams с нуля. Вместо этого - вы можете получить существующие LayoutParams представления, отредактировать их, а затем применить их к представлению, чтобы обновить его LayoutParams, используя setLayoutParams()

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 этого типа представления.

6 голосов
/ 30 ноября 2014

вы можете сделать все это как

ImageView imageView = findViewById(R.id.dl_image);
imageView.getLayoutParams().width = 120;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...