異なるscaleTypeを使用してスケールアップすることができます。しかし、ピクセル化やその他の問題を引き起こす可能性があります。ほとんどの画像を拡大するよりも、大きな画像と縮小画像(または2つの画像、フルサイズとサムネイル)を使用する方が効果的です。
[編集] [OK]をクリックして質問を読み直してください。スケールタイプでは不十分です。これをカスタムビューとして使用してみてください:
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;
public class HeightScaleImageView extends ImageView {
public HeightScaleImageView(Context context) {
super(context);
}
public HeightScaleImageView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public HeightScaleImageView(Context context, AttributeSet attributeSet, int defStyle) {
super(context, attributeSet, defStyle);
}
@Override
public void setImageResource(int resId) {
super.setImageResource(resId);
requestLayout();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = 0;
int height = 0;
//Scale to parent width
width = MeasureSpec.getSize(widthMeasureSpec);
Drawable drawable = getDrawable();
if (drawable != null) {
height = width * getDrawable().getIntrinsicHeight()/getDrawable().getIntrinsicWidth();
}
super.onMeasure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY));
}
}
私はすべてのスケールオプションを使用しました。何も動作しません!うん、ピクセル化は問題ですが、私はこの機能を自分のアプリケーションに必要としています。ユーザはピクセル化された画像を選択する可能性があるからです。 –
@FebinMathewは自分の編集をチェックします。あなたは正しい、スケールタイプはwrap_contentの高さを持つmatch_parentへの縦横比スケーリングには不十分です。上記のコードはうまくいくはずです –