91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android animatorset 能實現路徑動畫嗎

小樊
81
2024-11-27 07:08:43
欄目: 編程語言

是的,Android的AnimatorSet可以實現路徑動畫。你可以使用PathMeasurePathAnimator來創建和顯示沿路徑的動畫。以下是一個簡單的示例:

  1. 首先,在布局文件中添加一個View,例如:
<View
    android:id="@+id/my_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
  1. 然后,在Activity或Fragment中設置路徑動畫:
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.PathAnimator;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.os.Bundle;
import android.view.View;
import android.view.animation.AnimationUtils;
import androidx.appcompat.app.AppCompatActivity;

public class PathAnimationActivity extends AppCompatActivity {

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

        View myView = findViewById(R.id.my_view);

        // 創建路徑
        Path path = new Path();
        path.moveTo(50, 50);
        path.lineTo(150, 150);
        path.lineTo(250, 50);

        // 計算路徑長度
        PathMeasure pathMeasure = new PathMeasure(path, false);
        float pathLength = pathMeasure.getLength();

        // 創建PathAnimator
        PathAnimator pathAnimator = new PathAnimator(myView, path, pathLength);
        pathAnimator.setDuration(2000);
        pathAnimator.setRepeatCount(PathAnimator.INFINITE);
        pathAnimator.setRepeatMode(PathAnimator.RESTART);

        // 添加動畫監聽器
        pathAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float animatedPosition = (float) animation.getAnimatedValue();
                pathMeasure.getPosTan(animatedPosition, pos, tan);
                myView.setTranslationX(pos[0]);
                myView.setTranslationY(pos[1]);
            }
        });

        // 啟動動畫
        pathAnimator.start();
    }
}

這個示例中,我們創建了一個簡單的路徑,然后使用PathAnimator使其沿著路徑移動。PathAnimatorsetDuration()方法用于設置動畫持續時間,setRepeatCount()setRepeatMode()方法用于設置重復次數和模式。

0
偏关县| 黄骅市| 饶阳县| 灵璧县| 山丹县| 百色市| 嘉鱼县| 怀仁县| 镇巴县| 九江县| 灌南县| 迭部县| 乐安县| 九龙城区| 玉门市| 西峡县| 久治县| 淅川县| 华宁县| 政和县| 钟祥市| 韶关市| 江北区| 文安县| 通道| 庆城县| 罗平县| 宁强县| 信宜市| 绍兴市| 绥滨县| 新巴尔虎左旗| 剑川县| 瓮安县| 太仓市| 博野县| 静宁县| 黎城县| 丽江市| 正镶白旗| 得荣县|