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

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

Android Studio 3.0.1
Android 8.1.0

 



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

 
レイアウトはXML attributesと同じです。
 

 

サンプル動画

 

 
 

関連ページ:

 
References:
ScaleAnimation
Animation Resources

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

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




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

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

以下の3つはAndroidが学習できるオンラインスクールです。


TECH ACADEMY
Androidアプリコース



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



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





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

尚、スクールがダメだと言う人がいますが、やる気があれば問題ありません。与えられるのを待っていてはいけないですね
欲しいものは取りに行くのです。


Google Pixel 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影

Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

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

フォローする