package me.ccrama.redditslide.Views; import android.content.Context; import android.util.AttributeSet; import android.widget.ImageView; /** * Created by Carlos on 6/2/2016. */ public class MaxHeightImageView extends ImageView { public MaxHeightImageView(Context context) { super(context); } public MaxHeightImageView(Context context, AttributeSet attrs) { super(context, attrs); } public MaxHeightImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public MaxHeightImageView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } public static final int maxHeight = 3200; @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int hSize = MeasureSpec.getSize(heightMeasureSpec); int hMode = MeasureSpec.getMode(heightMeasureSpec); switch (hMode) { case MeasureSpec.AT_MOST: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.AT_MOST); break; case MeasureSpec.UNSPECIFIED: heightMeasureSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST); break; case MeasureSpec.EXACTLY: heightMeasureSpec = MeasureSpec.makeMeasureSpec(Math.min(hSize, maxHeight), MeasureSpec.EXACTLY); break; } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }