您好!
我是关于为视图点击反馈实现缩放动画。这是一个动画资源:
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<scale
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="1.4"
android:pivotX="50%"
android:pivotY="50%"
android:duration="180"
android:repeatCount="1"
android:repeatMode="reverse" />
</set>
活动代码:
private View.OnClickListener mButtonsListener;
mButtonsListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(mBounceAnimation);
}
};
oneBtn.setOnClickListener(mButtonsListener);
twoChb.setOnClickListener(mButtonsListener);
threeChb.setOnClickListener(mButtonsListener);
当我点击其中一个按钮并允许动画完成然后点击另一个按钮时 - 没关系。但是,当我单击一个按钮然后在动画完成之前单击另一个按钮时,第一个按钮上的动画将重新启动。重启是我的问题(( 我想为三个按钮中的每一个都有独立的动画绘制。
你能告诉我怎么做才能解决它。提前谢谢!
答案 0 :(得分:0)
您只需要为每个onClickListeners
以及三个独立的Buttons
对象添加独立的Animation
,指的是相同的资源。像这样:
final Animation mBounceAnimation = AnimationUtils.loadAnimation(this,R.anim.scale);
final Animation mBounceAnimation1 = AnimationUtils.loadAnimation(this,R.anim.scale);
final Animation mBounceAnimation2 = AnimationUtils.loadAnimation(this,R.anim.scale);
setContentView(R.layout.activity_animation);
oneBtn = (Button) findViewById(R.id.buttonAct);
twoChb = (Button) findViewById(R.id.twoChb);
threeChb = (Button) findViewById(R.id.threeChb);
oneBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(mBounceAnimation);
}
});
twoChb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(mBounceAnimation1);
}
});
threeChb.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.startAnimation(mBounceAnimation2);
}
});
这样,您的Animations
不会中断,并且会独立行事。