我想制作一个按钮,一旦按下按钮,它就会移动并通过快速交换imageview中动画的src来制作动画。
我尝试使用Thread.sleep。
first.setImageResource(R.drawable.cata2);
first.setImageResource(R.drawable.catb2);
ObjectAnimation代码
x += 10
first.setImageResource(R.drawable.cata2);
ObjectAnimator d = ObjectAnimator.ofFloat(first, "translationX", x);
d.setDuration(50);
d.start();
它总是只切换到cata2。
答案 0 :(得分:1)
尝试这个。如果更改的图像资源不起作用,请尝试在后台资源中进行更改。只需调整一些持续时间和线程睡眠即可。
在C#中:
尝试将其全部放入按钮的监听器中
设置动画
var clockwise = AnimationUtils.LoadAnimation(this.Activity, Resource.Animation.clockwise);
clockwise.Duration = 2000;
要将您的第一个设置为cata2
this.Activity.RunOnUiThread(() =>
{
first.setImageResource(R.drawable.cata2);
});
要将动画从cata2更改为catb2
Thread t = new Thread(delegate ()
{
first.StartAnimation(clockwise);
Thread.Sleep(500);
this.Activity.RunOnUiThread(() =>
{
first.setImageResource(R.drawable.catb2);
first.ClearAnimation();
return;
});
});
t.Start();
答案 1 :(得分:0)
我们可以为您的动画添加一个侦探兵
d.addListener(this);
然后生成替代
@Override
public void onAnimationStart(Animator animation){
//add some codes
}
@Override
public void onAnimationEnd(Animator animation){
//add some codes
}
@Override
public void onAnimationRepeat(Animator animation){
//add some codes
}
@Override
public void onAnimationCancel(Animator animation){
}