В Android с помощью ImageView и Matrix я хочу масштабировать изображение, чтобы оно соответствовало области отображения. Затем, используя щепотку, пользователь может увеличить изображение. Использование setScaleType(ImageView.ScaleType.FIT_CENTER)
Я могу поместить свое изображение в область отображения. Но когда я использую setScaleType(ImageView.ScaleType.MATRIX)
, чтобы начать масштабирование изображения, изображение будет сброшено до размера по умолчанию.
Поэтому мой вопрос заключается в том, как найти матрицу масштаба, которая даст тот же эффект, что и setScaleType(ImageView.ScaleType.FIT_CENTER)
.
Вам необходимо использовать mMatrix.setRectToRect
и Matrix.ScaleToFit.CENTER
с координатами изображения и координатами вашего представления в качестве исходных и целевых прямоугольников.
mMatrix.setRectToRect(new RectF(0,0,mImageView.getMeasuredWidth(),mImageView.getMeasuredHeight()),new RectF(0,0,mImageView.getParent().getMeasuredWidth(),mImageView.getParent().getMeasuredHeight()),Matrix.ScaleToFit.CENTER);