@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (isInEditMode()) {
mCount = 5;
mPosition = 2;
}
final int paddingStart = ViewCompat.getPaddingStart(this);
final int paddingEnd = ViewCompat.getPaddingEnd(this);
final int paddingTop = getPaddingTop();
final int paddingBottom = getPaddingBottom();
final int suggestedMinimumWidth = getSuggestedMinimumWidth();
final int suggestedMinimumHeight = getSuggestedMinimumHeight();
final int itemWidth = Math.max(mNormal.getIntrinsicWidth(),
mSelected.getIntrinsicWidth());
final int itemHeight = Math.max(mNormal.getIntrinsicHeight(),
mSelected.getIntrinsicHeight());
final int count = mCount;
final int padding = mPadding;
final float scale = mScale;
final int width = count <= 0 ? 0 : count * itemWidth + padding * (count - 1) +
(scale > 1 ? (int) Math.ceil(itemWidth * (scale - 1)) : 0);
final int height = scale > 1 ? (int) Math.ceil(itemHeight * scale) : itemHeight;
setMeasuredDimension(
resolveSize(Math.max(width + paddingStart + paddingEnd, suggestedMinimumWidth),
widthMeasureSpec),
resolveSize(Math.max(height + paddingTop + paddingBottom, suggestedMinimumHeight),
heightMeasureSpec));
applyGravity(itemWidth, itemHeight);
}