序章:
アプリにいくつかのアニメーションを追加すると、アクティビティをオンまたはオフにする最も簡単な方法など、アプリケーションが非常に魅力的になります. もちろん、カスタム コントロール アニメーションは絶対に不可欠です~そして、Android のアニメーションはフレーム ごとに 3 つのカテゴリに分けられますアニメーション (Frame)とトゥイーン アニメーション (Tween) 、およびAndroid 3.0 以降に導入されたプロパティ アニメーション (Property)
1.フレームアニメーションフレームアニメーションのリソースファイルはdrawableフォルダに配置
-
プロジェクトを作成
-
リソースをインポートし、画像リソースを mipmap フォルダーに配置します
-
drawable フォルダーの下にリソース ファイル cat_gif.xml を書き込みます。
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/img_miao1"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao2"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao3"
android:duration="80"/>
<item android:drawable="@mipmap/img_miao4"
android:duration="80"/>
。。。
</animation-list>
4. xml ページで <Imageview> を追加し、背景を設定します。
<ImageView
android:id="@+id/im_cat"
android:layout_width="340dp"
android:layout_height="340dp"
android:background="@drawable/cat_gif"/>
5. Java ファイルで、imageview を取得し、その背景をアニメーション化します。
public class MainActivity extends AppCompatActivity {
private ImageView im_cat;
private AnimationDrawable anim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im_cat = findViewById(R.id.im_cat);
anim = (AnimationDrawable) im_cat.getBackground();
}
}
6. アニメーションをオンにする
public class MainActivity extends AppCompatActivity {
private ImageView im_cat;
private AnimationDrawable anim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
im_cat = findViewById(R.id.im_cat);
anim = (AnimationDrawable) im_cat.getBackground();
anim.start();
}
}
2.トゥイーンアニメーショントゥイーンアニメーションのリソースファイルはanimフォルダ配下に配置
2.1トゥイーンアニメーションには何種類ありますか?
1. AlphaAnimation (透明グラデーション)
anim_alpha.xml:
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="2000"/>
属性の説明:
fromAlpha : 初期透明度
toAlpha : 透明度を終了
透明度の範囲: 0 ~ 1、完全に透明 - 完全に不透明
2.ScaleAnimation(スケールグラデーション)
anim_scale.xml:
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="0.2"
android:toXScale="1.5"
android:fromYScale="0.2"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"/>
属性の説明:
fromXScale / fromYScale : X 軸 / Y 軸に沿ったスケーリングの開始比率
toXScale / toYScale : X 軸/Y 軸に沿ってスケーリングを終了します。
pivotX / pivotY : ズームされた中心軸ポイントの X/Y 座標、つまり、それ自体の左端からの位置。たとえば、50% は中心軸ポイントとしての画像の中心です。
3.TranslateAnimation(変位勾配)
anim_translate.xm :
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0"
android:toXDelta="320"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="2000"/>
fromXDelta / fromYDelta : アニメーション開始位置の X/Y 座標
toXDelta / toYDelta : アニメーション終了位置の X/Y 座標
4. RotateAnimation (回転グラデーション)
anim_rotate.xml:
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="360"
android:duration="1000"
android:repeatCount="1"
android:repeatMode="reverse"/>
属性の説明:
fromDegrees / toDegrees : 回転の開始/終了角度
repeatCount : 回転数, デフォルト値は 0, 1 回を表します. 3 などの他の値の場合, 4 回回転します. また, 値が -1 または無限の場合, アニメーションが決して止まらない
repeatMode : 繰り返しモードを設定します。デフォルトはrestartですが、repeatCount が 0、無限、または -1 より大きい場合にのみ有効です。逆に設定することもできます。つまり、アニメーションが偶数回表示されると、逆方向に動きます!
5. AnimationSet (グラデーションの組み合わせ)
とてもシンプルで、前のアニメーションを組み合わせただけです~
anim_set.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="true" >
<scale
android:duration="2000"
android:fromXScale="0.2"
android:fromYScale="0.2"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.5"
android:toYScale="1.5" />
<rotate
android:duration="1000"
android:fromDegrees="0"
android:repeatCount="1"
android:repeatMode="reverse"
android:toDegrees="360" />
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="320"
android:toYDelta="0" />
<alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.1" />
</set>
要約:
トゥイーン アニメーションで使用されるプロセス:
1. 使用するモーショントゥイーンを選択する
2. anim の下にリソース ファイルを作成します。
3. AnimationUtils を使用してエフェクトをロードする
4.アニメーション開始