[Android] ImageView に画像を表示する

ImageViewに画像を表示する方法のメモ

使用する画像を用意する

/res/drawable/ フォルダに使用するイメージを入れる。
/drawable/ フォルダがなければ作成する。

ドロップアンドドラッグなどを行うと、 [Copy files] or [Link to files] の選択肢がでるのでどちらかを選択する。

この drawableフォルダに入れたイメージは自動的に番号が割り振られ R.drawable.****** で番号を取得できる。

コード

ImageView#setImageResource(id)

でリソースをセットするか

Resources.getResources()

Resources#getDrawable(id)

ImageView#setImageDrawable(darawable)

でリソースをセットするか

package jp.fernweh;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class ImageViewTest extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout layout = new LinearLayout(this);
    setContentView(layout);

     // ImageView#setImageResource(int resId)
     // これを使うのがお手軽でラク
    ImageView img001 = new ImageView(this);
    img001.setImageResource(R.drawable.icon);
    layout.addView(img001);

    /*
     * 面倒な手順で画像を表示
     */
    ImageView img002= new ImageView(this);

    // リソースを取り扱うクラス
    Resources res = getResources();

    // Resources#getDrawable で
    // 指定した画像のDrawableインスタンスを取得
    Drawable drawable = res.getDrawable(R.drawable.icon);

    // 指定したイメージをImageViewにセット
    img002.setImageDrawable(drawable);

    // Alphaをセット
    // 0x00 ~ 0xFF まで
    img002.setAlpha(0x99);
    layout.addView(img002);
  }

}

結果は…両方とも透過度が適用されてしまう。 ディープコピーはどうやるのだろう…

Share