package com.justsystems.hpb.pad.marketplace; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView; /** * テンプレートを表示するView。<br> * 画像とViewを同じ高さにしています。 */ public final class TemplateView extends ImageView { public TemplateView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public TemplateView(Context context, AttributeSet attrs, int style) { super(context, attrs, style); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); Drawable d = getDrawable(); if (d == null) { return; } final int viewWidth = getMeasuredWidth(); final int imageWidth = d.getIntrinsicWidth(); final int drawableDrawWidth = viewWidth - getPaddingLeft() - getPaddingRight(); final float drawableRate = drawableDrawWidth / (float) imageWidth; if (drawableRate > 1) { return; } final int drawbleHeight = d.getIntrinsicHeight(); final int newDrawbleHeight = (int) (drawbleHeight * drawableRate); final int newHeight = getPaddingTop() + newDrawbleHeight + getPaddingBottom(); setMeasuredDimension(viewWidth, newHeight); } }