作って学べる
プログラミング講座
アプリを作りながら学習
自分のペースですぐに始められる
困ったら何回でも質問可能

【Android Studio】ImageViewの画像を動的に変更する3つの方法

Sara

ImageView の画像を MainActivity.java などから動的に変更するには3つのメソッド

  1. setImageResource
  2. setImageDrawable
  3. setImageBitmap

を使うことができます。

この記事ではそれぞれのメソッドの使い方を紹介します。

開発環境

Android Studio4.1.1
Android EmulatorNexus 4 (API 30)
minSdkVersion16
targetSdkVersion30

画像について

drawable フォルダに sample.png という画像を置いています。

レイアウトについて

activity_main.xml に ImageView を用意しています。

<ImageView
    android:id="@+id/myImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@android:drawable/sym_def_app_icon" />

表示しているアイコン画像を MainActivity.java から sample.png に変更します。

画像を変更する方法

方法① setImageResource

ImageView myImage= findViewById(R.id.myImage);
myImage.setImageResource(R.drawable.sample);

画像のリソース ID(R.drawable.sample)をセットするだけで画像を変更することができます。

方法② setImageDrawable

ImageView myImage= findViewById(R.id.myImage);
Drawable myDrawable = getResources().getDrawable(R.drawable.sample);
myImage.setImageDrawable(myDrawable);

画像のリソース ID から Drawable オブジェクトを作成して、setImageDrawable メソッドに渡します。 

方法③ setImageBitmap

ImageView myImage= findViewById(R.id.myImage);
Bitmap myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sample);
myImage.setImageBitmap(myBitmap);

BitmapFactory クラスの decodeResource メソッドで Bitmap オブジェクトを作成して、setImageBitmap メソッドに渡します。

どの方法を使えば良いか

方法① setImageResource メソッドは画像を表示するまでに少し遅れが出る可能性があるため、setImageDrawable か setImageBitmap を使うことが提案されています。

基本的には一番簡単に使える setImageResource メソッドで良いと思いますが、ImageView の数や画像サイズの影響も考えて選ぶことをお勧めします。

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
ABOUT ME
Sara
書籍やオンライン講座でプログラミングを勉強してフリーランスのプログラマーになりました。
このサイトでは「わかりやすく・シンプル」をモットーに、プログラミングの基礎からアプリ開発まで紹介します。
独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています。
主な使用言語:Java / Kotlin / PHP
>> 詳しいプロフィールはこちら
>> 書籍を出版しました!
>> お問い合わせはこちら
本格的に学びたい方へ

Code for Fun プログラミング講座

Code for Fun プログラミング講座では、プログラミングの基礎からアプリ開発まで学ぶことができます。

わかりやすく・シンプルをモットーに

  • 同じコードを書けば必ず完成できること
  • 専門用語を使いすぎないこと

を重視しています。

POINT 01

動くコード

プログラミングの文法だけを学んでも、そこから動くアプリを開発をするのは難しいです。

Code for Fun のプログラミング講座では、ゲームやカレンダーなど「アプリとして機能するもの」を作りながらプログラミングを学ぶことができます。

POINT 02

自分のペースで

オンライン講座なので、ご自身のペースで学習を進めて頂けます。

分からないことがあっても、前のレッスンに戻ることができるので安心です。

お申し込みしたその日からからすぐに始めることができます。

POINT 03

個別サポート

プログラミング学習では、エラーが起きることはよくあります。そんな時はお気軽にお問い合わせください!

コメント欄またはメールによるサポートを回数無制限でご利用頂けます。(*講座に関連するご質問のみ対応)

今すぐ無料でお試し

0
この記事にコメントするx
記事URLをコピーしました