1. 程式人生 > 其它 >十九、動畫-補間動畫

十九、動畫-補間動畫

一、補間動畫

1. alpha 透明度    2. rotate 旋轉

3. scale 縮放        4. translate 平移

二、建立資料夾  anim

 三、建立主頁檢視顯示

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:maxWidth="300dp"
        android:maxHeight="300dp"
        android:src="@drawable/image"
        />

</RelativeLayout>

四、動畫xml檔案

4.1  alpha 透明度

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--透明度  -->
    <!--duration 設定時長-->
    <alpha
        android:fromAlpha="0"
        android:toAlpha="1"
        android:duration="2000" />
</set>

4.2 rotate 旋轉

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--旋轉-->
    <!--pivotX pivotY 設定角度-->
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="2000"
        />
</set>

4.3 scale 縮放

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--縮放-->
    <scale
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="0.5"
        android:toYScale="0.5"

        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="2000"
        />
</set>

4.4  translate 平移

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <!--平移-->
    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="400"
        android:toYDelta="400"
        android:duration="2000"
        />
</set>

五、後臺啟用動畫

package com.example.mybujian;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ImageView imageview = findViewById(R.id.iv);
        imageview.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //通過載入xml動畫設定檔案建立一個 Animation 物件
                //透明度
                /* Animation animation = AnimationUtils.loadAnimation
                      (MainActivity.this,R.anim.alpha);*/
                //旋轉
                /* Animation animation = AnimationUtils.loadAnimation
                        (MainActivity.this,R.anim.rotate);*/
                //縮放
                /*Animation animation = AnimationUtils.loadAnimation
                        (MainActivity.this,R.anim.scale);*/
                //平移
                Animation animation = AnimationUtils.loadAnimation
                        (MainActivity.this,R.anim.translate);
                //通過ImageView啟動
                imageview.startAnimation(animation);
            }
        });
    }
}