Изменение размера IMAGEVIEW в масштабе Android - PullRequest
7 голосов
/ 11 июля 2011

У меня есть изображение внутри просмотра изображений в Android.

Я масштабирую изображение с использованием масштабного типа (MATRIX) с помощью кода, подобного следующему:

                       mtrx.postScale(scale, scale);
                 imageView.setImageMatrix(mtrx);
            imageView.setScaleType(ScaleType.MATRIX);
            imageView.invalidate();

Теперь, это действительно правильно изменить размеризображение, содержащееся в ImageView, это хорошо, но мне нужно переместить изображение в положение 0,0 в пределах изображения и затем изменить размер самого imageView до размера масштабированного изображения.

Пока чтокаждая идея, которую я выдвинул, чтобы попытаться повторно использовать один и тот же imageView, кажется, не работает, или я просто делаю что-то не так.

Это мой единственный способ добиться этого, чтобы уничтожить представление изображения, изменить размер растрового изображениясоздать новое представление изображения, содержащее новое растровое изображение, созданное в масштабе и добавляющее представление обратно к макету?

Я бы действительно не хотел этого делать .. Я столкнулся с пределом кучи в 16 мегабайт, как естьс вещами.Как мне сказать матрице переместить изображение в положение 0,0 в imageView (imageView изначально создается с центром масштаба типа, после того как оно масштабировало изображение меньше? И как мне тогда сказать imageView, эй, вы сейчас толькоразмером с масштабированное изображение?

Заранее спасибо.

Ответы [ 2 ]

8 голосов
/ 20 августа 2011

Настройка представления изображения на «Настройка границ просмотра», кажется, делает свое дело.

Вот что должны сказать документы:

Установите значение true, если вы хотитеImageView, чтобы отрегулировать свои границы, чтобы сохранить соотношение сторон его рисования.

Это можно сделать, используя android:adjustViewBounds="true" или в коде с imageView.setAdjustViewBounds(true).

1 голос
/ 04 апреля 2013

Установите «Adjust View Bounds» в значение true, а затем установите тип масштаба на «fitXY», наконец, установите layout_width и height.Вы увидите, что размер изображения изменится.

...