[Android] ImageView 画像をコード記述で動的に扱う

cat47 01 - [Android] ImageView 画像をコード記述で動的に扱う動的に画像を動かしたり、サイズを拡大・縮小するには、xmlのレイアウトではうまくいきません。拡大縮小などはコードで実装すると可能です。
 

Android Studio 4.1.1
API 30

R904D.P21641J - [Android] ImageView 画像をコード記述で動的に扱うimpression?a id=2545321&p id=969&pc id=1263&pl id=47128 - [Android] ImageView 画像をコード記述で動的に扱う

ImageViewをコードで記述

 
画像は通常は静的に貼り付けて終わりが多いのですが、レイアウトの関係でサイズを変えたり、アニメっぽくしたりする必要性が求められることがあります。基本的にはTextViewやButtonと同様の実装となります。

imageview code 01 - [Android] ImageView 画像をコード記述で動的に扱う
 

 

コード化のポイント

 
画像やボタンといったUI部品を配置するためには setContentView を使いますが、今回はレイアウトXMLファイルである activity_main.xml を使わないやり方です。
 
setContentView:
その名の通り、スクリーン画面にViewを設定するメソッドです。
設定されるViewはLayout形式でまとめられたViewグループになります。
 
textview code a01d 450x199 - [Android] ImageView 画像をコード記述で動的に扱う
 
setContentViewのメソッドは引数の取り方でいくつかあります

  • setContentView(int layoutResID)
    • レイアウトXMLファイルのIDを指定
  • setContentView(View view)
    • 簡略形です。今回はこれを使います
  • setContentView(View view, ViewGroup.LayoutParams params)

Ref: Android Developer

 

Layoutのコード

 
setContentViewに設定するためのレイアウトを作成します。LayoutにはLiearLayoutやRelativeLayoutなどいくつかありますが、目的にあったものを選びます。今回はLiearLayoutです。
 

 
ImageViewをコードで記述してLayoutに追加します。

 
ボタンをタップすると縦横幅が+200pix増加するように設定していますが、この数値はpix値なので端末のサイズに適応するdpとは異なります。

 

サンプルコード

 
画像を適当に準備し \res\drawable 設定します。
あるいは \res\mipmap 以下にあるDroid君のアイコン画像をコピーして代用もできます。
ic launcher - [Android] ImageView 画像をコード記述で動的に扱う

MainActvity.java

 

サンプル動画

 

 
使用した画像は600x600pixサイズでdrawableに入れました。これはレイアウトファイルを使わず画像を拡大させる例ですが、画像を回転・移動・フリップそして拡大縮小させるにはMatrixを使う方が応用性があります。
 
 
関連:

References:
setContentView
LinearLayout
LinearLayout.LayoutParams

アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

TECH ACADEMY
Androidアプリコース



Code Camp
現役エンジニアによるオンラインプログラミングスクール【CodeCamp】


直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。



侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


シェアする

  • このエントリーをはてなブックマークに追加

フォローする