Timestretch Timestretch - 25 days ago 9
Android Question

Android ImageView topCrop/bottomCrop scaletype?

I have a square

ImageView
which displays pictures of varying dimensions. I want to always maintain the original aspect ratio of the pictures and have no margin around the image (so that the image takes up the whole ImageView). For this, I am using the
centerCrop
scaleType on the
ImageView
. However, I want to make it so that if the top and bottom of the image are cut off (i.e.: the image is taller than it is wide), the image gets pulled towards the bottom of the container. So instead of having equal amounts of pixels cropped at the top and bottom, the image is flush with the top and sides of the
ImageView
and the bottom of the image has twice as much cropped off. Is this possible in xml, if not, is there a java solution?

Answer

You won't be able to do that with a regular ImageView and it's properties in xml. You can accomplish that with a proper scaleType Matrix, but tbh writing it is a pain in the ass. I'd suggest you use a respected library that can handle this easily. For example CropImageView.