Масштабирование изображения до заполнения всего ImageView в Android



Я хотел бы масштабировать изображение, чтобы занять весь размер ImageView. Это тонко отличается от использования scaleType=fit_center, потому что fit_center оставит полосы вокруг изображения, если соотношение сторон изображения не точно соответствует соотношению сторон ImageView. Вместо этого я хотел бы, чтобы изображение было центрировано и масштабировано, чтобы полностью заполнить охватывающий вид, с любым лишним отрубленным.



Я могу сделать это, вычисляя свою собственную матрицу изображений во время onCreate():



final Display display = getWindowManager().getDefaultDisplay();
final float screenWidth = display.getWidth();
final float screenHeight = display.getHeight();
final float imageWidth = splashView.getDrawable().getIntrinsicWidth();
final float imageHeight = splashView.getDrawable().getIntrinsicHeight();
final Matrix splashMatrix = new Matrix();
final float scale = Math.max(screenHeight/imageHeight,screenWidth/imageWidth);
splashMatrix.postScale( scale, scale );
splashView.setImageMatrix(splashMatrix);


это прекрасно работает, но кажется, что там должно быть легче прочь. Кто-нибудь знает способ масштабирования изображения в ImageView, сохраняя при этом соотношение сторон изображения и полностью заполняя ImageView?



(Примечание: В моем случае мой ImageView занимает весь экран, поэтому я использую getWindowManager().getDisplay() найти нужный размер изображения. Вы не можете использовать splashView.getWidth()/getHeight() потому что вид еще не был выложен и не имеет размер)

617   2  

2 ответов:

можно использовать android:scaleType="centerCrop". Сохраняет соотношение сторон и масштабирует изображение так, как вам хочется.

для получения дополнительной информации, пожалуйста, перейдите по ссылке ниже

http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType

попробуйте атрибут scaleType для вашего ImageView. http://developer.android.com/reference/android/widget/ImageView.html#attr_android:scaleType

Comments

    Ничего не найдено.