我有一个明星动画来给评分,我在片段中创建了三个这样的LottieAnimationViews,以实现可重用性。当我从片段的onCreate()
方法内部运行LottieAnimation时,它甚至没有启动(我正在使用支持片段)。如果动画位于Activity
内而不是片段内,则运行相同的代码。这是我的代码...
mLottieStarView1 = findViewById(R.id.rating_lottie_star_1); //LottieView
starLayout1 = findViewById(R.id.rating_star_layout_1); //Enclosing LinearLayout
mValueAnimator1 = ValueAnimator.ofFloat(0f, 1f).setDuration(1500);
//Create animation update methods
mValueAnimator1.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { //Star 1
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
mLottieStarView1.setProgress((Float) valueAnimator.getAnimatedValue());
}
});
//Set listener on enclosing layout to run animation on touch
starLayout1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLottieStarView2.setProgress(0f);
mLottieStarView3.setProgress(0f);
mValueAnimator1.start();
}
});
答案 0 :(得分:1)
确保将图像视图设置为isClickable = true
和isFocusable = true
在xml中。
使用lottieView.playAnimation();
方法开始抽奖动画,然后单击取消尝试
if(lottieTest.getFrame() == lottieTest.getMaxFrame()) {
lottieTest.setFrame(1);
}