如何快速更改Imageresource?

时间:2019-08-29 19:59:00

标签: android

我想制作一个按钮,一旦按下按钮,它就会移动并通过快速交换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。

2 个答案:

答案 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){

}