1
我試圖做的是將ImageView從正常大小縮放到20%,然後返回。這應該是循環的。我已經用下面的代碼完成了這個工作,但是它並不正確。更多下面。縮放動畫按預期工作不正常
動畫/ scale.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<scale
android:duration="1000"
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="1.2"
android:toYScale="1.2"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false" />
<scale
android:startOffset="1000"
android:duration="1000"
android:fromXScale="1.2"
android:fromYScale="1.2"
android:toXScale="1.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false" />
</set>
然後在我的代碼,我做
private void scaleAnimation() {
final Animation scaler = AnimationUtils.loadAnimation(this, R.anim.scale);
scaler.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
animation.reset();
animation.startNow();
}
});
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
scale.startAnimation(scaler);
}
}, 2000);
}
我有處理程序存在,所以我可以看到在開始發生。
問題是一種很難解釋的問題..我的圖像在動畫開始後似乎會縮小然後執行動畫。因此,圖像應該顯示2秒鐘。正如動畫開始,它突然變得更大,看起來是25% - 50%,然後動畫正確執行。一旦動畫結束,圖像會很快調整到原始大小,然後再放大,然後動畫重新開始。
我已經嘗試了幾個不同的圖像沒有區別。這是我的理解,從XScale = 1.0開始沒有縮放的動畫,即圖像。希望有人能夠闡明我做錯了什麼或者我誤解了這些概念。
乾杯
此外,您不必擔心添加自己的AnimationListeners重新開始動畫 – cheezy
這很棒。完美工作,代碼少。非常好的建議,謝謝! –