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

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


Android Studio
2021.2.1

 




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

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

Android Studioのmipmapから持ってくることでも可能

 
strings.xml

 
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

シェアする

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

フォローする