2012-05-03 14 views
2

myImageView.clearAnimation()を呼び出した後でアニメーションを再開するソリューションが見つかりません。アニメーションはonPageSelectedに設定されますが、startoffsetのタイムアウトは機能しません。Android:クリア後にアニメーションを再開する方法

また、他の方法で、元の画像ビューを得るためにアニメーションをキャンセルし、 onPageSelectedが呼び出されたときに、同じビューのアニメーションに対して同じアニメーションを開始することができます。

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 
    } 
};} 

答えて

0

あなたがする必要はありません。ここで

は私のコードです

私はmyImageView.getAnimation()を呼び出すようにしようと試みretart()onPageScrollStateChangedでなく、アニメーションが表示に残って...。アニメーションを消去し、直接starAnimationを呼び出す

+0

アニメーションは、ページ間をスクロールするときに停止する必要があります。スクロールが終了すると、タイムアウト後にアニメーションが開始されます。 –

関連する問題