2

myImageView.clearAnimation()を呼び出した後、アニメーションを再開するための解決策が見つかりません。アニメーションはonPageSelectedで設定されますが、startoffsetタイムアウトは機能しません。

または、アニメーションをキャンセルして手付かずのimageviewを取得し、onPageSelectedが呼び出されたときに、同じビューagianに対して同じアニメーションを開始する他の方法はありますか。

onPageScrollStateChangedでmyImageView.getAnimation()。retart()を呼び出そうとしましたが、アニメーションはまだ表示されています...

これが私のコードです:

public class myActivity extends Activity {
...
private ImageView myImageView;

private static final Integer startOffset = 5000;
private static final Integer duration= 2500;

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    currentImageView = (ImageView) findViewById(R.id.dashboardIndicator);
    currentImageView.setAnimation(indicatorAnimation());
    ...
}

private Animation indicatorAnimation() {
    Animation alphaAnimation = new AlphaAnimation(1, 0.2F);
    alphaAnimation.setInterpolator(new AccelerateInterpolator());
    alphaAnimation.setStartOffset(startOffset);
    alphaAnimation.setDuration(duration);
    alphaAnimation.setFillAfter(true);

    return alphaAnimation;
}

ViewPager.OnPageChangeListener onPageChangeListener = new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        // Need here to start the animation again
        myImageView.setAnimation(indicatorAnimation());
        // Set's the animation but don't starts it after the startOffset timeout
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { }

    @Override
    public void onPageScrollStateChanged(int position) {
        // Need here to cancel the animation to have no Alpha value on the imageview
        myImageView.clearAnimation();
        // image view 100% visible
    }
};}
4

1 に答える 1

0

アニメーションをクリアする必要はありません。starAnimation を直接呼び出します。

于 2012-05-03T12:51:17.497 に答える