Изменение размера ImageView во время выполнения с помощью кнопки - Android - PullRequest
4 голосов
/ 23 октября 2011

Я отображаю изображение с помощью контейнера ImageView. размер изображения необходимо изменить, когда пользователь вводит определенное значение и нажимает кнопку обновить

resize только для отображения, исходный ресурс остается без изменений. НЕТ редактирования, сохранения и т. Д.

xml layout

<ImageView 
android:background="@drawable/picture01" 
android:id="@+id/picture01holder" 
android:layout_below="@+id/TextView01" 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
</ImageView>

main.java

final ImageView pic01 = (ImageView)findViewById(R.id.picture01);

Теперь, что мне делать, чтобы динамически назначить этому pic01 размер по моему выбору. только функция, я могу реализовать это внутри кнопки самостоятельно. я считаю, что должен использовать что-то вроде pic01.setLayoutParams, но я не знаю, как его использовать.

В основном я хочу перезаписать layout_height = "wrap_content" и layout_width = "wrap_content" в .java

Ответы [ 3 ]

5 голосов
/ 23 октября 2011

изменить размер Imageview, взяв LayoutParams

    final ImageView pic01 = (ImageView)findViewById(R.id.picture01);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(50, 50);
    pic01.setLayoutParams(layoutParams);
4 голосов
/ 23 октября 2011

Прежде всего, вам нужно установить тип масштаба изображения на CENTER_INSIDE или CENTER_CROP в зависимости от ваших предпочтений. Вы должны сделать это в вашем методе onCreate ().

myImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

После слов вам просто нужно изменить размер изображения в макете. Это будет зависеть от типа макета, который вы используете. Примером для LinearLayout будет:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100,200);
myImageView.setLayoutParams(params);

Или вы можете установить минимальный размер компонентов:

myImageView.setMinimumWidth(200);
myImageView.setMinimumHeight(200);

В обоих случаях убедитесь, что размер может быть достигнут внутри макета. Если у вас есть несколько компонентов с меньшим весом, изображение может быть не в состоянии занимать необходимое вам пространство.

0 голосов
/ 23 октября 2011
RelativeLayout.LayoutParams myParams = new RelativeLayout.LayoutParams(yourWidthHere, yourHeightHere);

pic01.setLayoutParams(myParams)
...