【Android】ImageViewのカスタマイズ

Android Tipsプログラミング

ImageViewのカスタマイズについて、主な設定を挙げます。なお、Bitmapクラスについては、別途説明ページを用意します。
こちら

画像ファイル
res/drawable/image_sample.png

import android.app.Activity;
import android.graphics.Bitmap;
import android.widget.ImageView;

public class MyClass extends Activity{

  public void myMethod(Bitmap bitmap){
    ImageView iv = (ImageView)this.findViewById(R.id.myImage);

    // アスペクト比を維持する
    iv.setAdjustViewBounds(true);

    // Viewの最大サイズを指定
    iv.setMaxWidth(200); // [px]
    iv.setMaxHeight(200); // [px]

    // スケール設定
    // ●そのまま中央に描画
    //  CENTER:中央に描画(リサイズまったくなし)
    // ●画像をViewの幅もしくは高さのサイズに合わせる
    //  FIT_CENTER:中央に描画
    //  FIT_END:右下端に描画
    //  FIT_START:左上端に描画
    //  FIT_XY:Viewのサイズいっぱいにリサイズ
    // ●Viewのサイズに合わせないが、アスペクト比維持のためリサイズする
    //  CENTER_CROP:中央に描画(余白無視)
    //  CENTER_INSIDE:中央に描画
    iv.setScaleType(ImageView.ScaleType.CENTER);

    // 画像設定(ファイルより)
    iv.setImageResource(R.drawable.image_sample);

    // 画像設定(Bitmapクラスより)
    iv.setImageBitmap(bitmap);
  }
}

xmlだとこうなります。

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/myImage"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:adjustViewBounds="true" // "true" or "false"
  android:maxWidth="200px"
  android:maxHeight="200px"
  // center,fitCenter,fitEnd,fitStart,fitXY,centerCrop,centerInside
  android:scaleType="center"
  android:src="@drawable/image_sample"
/>

参考: Viewコンポーネントの余白設定
参考: TextViewのカスタマイズ
参考: Viewのクリックイベント
参考: Viewのタッチイベント

コメント