[Android] ScaleAnimation 拡大・縮小アニメーション

android.view.animation.Animationのクラスを使って、Viewを拡大したり縮小したりするScaleAnimationを簡単に組むことができます。
 
scale animation 01 - [Android] ScaleAnimation 拡大・縮小アニメーション

Android Studio 3.5.3
API 29

 



ScaleAnimation

 
Viewにアニメーションを施したいときはこのAnimationが簡単です。ただし途中で止めるなど込み入ったことはできません。Property Animation 等を使いましょう。
 
設定方法は2通りあります。
 

 

XML attributes

 
res以下にanimというフォルダーを作成してxmlファイルを置きます。

animationの属性設定は<scale />タグを使って以下のように設定します。

  • fromXScale:開始時のxスケールサイズ(1.0で表示画像のまま)
  • toXScale:終了時のxスケールサイズ
  • fromYScale:開始時のyスケールサイズ(1.0で表示画像のまま)
  • toYScale:終了時のyスケールサイズ
  • pivotX:スケール時のx座標(50%がview中央値)
  • pivotY:スケール時のy座標(50%がview中央値)
  • fillAfter:アニメーション終了時にそのままにする(true)
  • duration:アニメーション期間[msec]

 
res\anim\scale_animation.xml

activity_main.xml

 
strings.xml

 
scalingしたいImageViewに画像を設定します。
 
ball - [Android] ScaleAnimation 拡大・縮小アニメーション
 
MainActivity.java

 

コードで記述

 
ScaleAnimationのConstructorは幾つかありますが、今回使いやすいのはこれです。

  • ScaleAnimation
    • float fromX:開始時のxスケールサイズ(1.0で表示画像のまま)
    • float toX:終了時のxスケールサイズ
    • float fromY:開始時のyスケールサイズ(1.0で表示画像のまま)
    • float toY:終了時のyスケールサイズ
    • int pivotXType:x座標のタイプ
      • Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT
    • float pivotXVal:スケール時のx座標(0.5fがview中央値)
    • int pivotYType:y座標のタイプ
      • Animation.ABSOLUTE, Animation.RELATIVE_TO_SELF, or Animation.RELATIVE_TO_PARENT
    • float pivotYVal:スケール時のy座標(0.5fがview中央値)
  • setRepeatCount():繰り返し回数
  • setDuration(msec):アニメーションの期間[msec]
  • startAnimation():アニメーションを開始
  • setFillAfter(true):アニメーション終了時にViewをそのままにする

pivotTypeの3種類は

  • Animation.ABSOLUTE:240 のようなpixel絶対値
  • Animation.RELATIVE_TO_SELF:自分のサイズの割合、0.5fが画像の中心
  • Animation.RELATIVE_TO_PARENT:parentサイズの割合、0.5fが画面中心

MainActivity.java

 
レイアウト
activity_main.xml

 
strings.xml

 

サンプル動画

 

 
 

関連ページ:

 
References:
ScaleAnimation
Animation Resources

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加

 

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

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

オンラインスクールは色々ありますが、以下の3つはAndroidが学習できる老舗スクールです。


TECH ACADEMY
Androidアプリコース


こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


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


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


CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




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


無料で転職まで
これはアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールでエンジニアになって職を得たいのであれば手っ取り早いかもしれません

受講料無料:社会人転職コース




シェアする

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

フォローする