2013-01-02 66 views
4

好吧任何視圖,所以我有一個觀點在那裏它被用下面的代碼動畫:如何移動和淡出與動畫

RelativeLayout rl = (RelativeLayout) findViewById(R.id.productPage_parentLayout_RL); 

ImageView iv = new ImageView(ProductPage.this); 
imageLoader.DisplayImage(FULL_PRODUCT_INFO.getFirstImage(), iv); 

Animation animation = new TranslateAnimation(0, helper.getDeviceWidth() - 100,0, 0); 
animation.setDuration(1000); 
animation.setFillAfter(true); 

rl.addView(iv); 

有了這個代碼,視圖從屏幕左側開始並移動到屏幕的盡頭,但我也想淡出視圖並最終隱藏/摧毀它。我試圖搜索與此相關的任何內容,但找不到任何內容。

任何幫助表示讚賞。

回答

2
Animation a = new AlphaAnimation(1.0f, 0.0f); 
     a.setDuration(1000); 
     a.setFillAfter(true); 
     iv.startAnimation(a); 

AnimationSet set = new AnimationSet(true); 
     set.addAnimation(animation) 
     set.addAnimation(a) 
     set.setFillAfter(true); 
     iv.startAnimation(set); 

    set.setAnimationListener(new AnimationListener() { 

        public void onAnimationStart(Animation animation) { 
         // TODO Auto-generated method stub 

        } 

        public void onAnimationRepeat(Animation animation) { 
         // TODO Auto-generated method stub 

        } 

        public void onAnimationEnd(Animation animation) { 
         iv.setVisibility(View.INVISIBLE); 

        } 
       }); 
+0

差不多......我也使用過這種方法,但它在移動時需要淡出,並在到達末尾時隱藏起來。 –

+0

在這種情況下,您需要使用AnimationSet –

6

試試這個

ObjectAnimator move=ObjectAnimator.ofFloat(iv, "translationY",100f); 
        move.setDuration(3000); 
    ObjectAnimator alpha1=ObjectAnimator.ofFloat(iv, "alpha",0.5f); 
        alpha1.setDuration(1000); 

        ObjectAnimator alpha2=ObjectAnimator.ofFloat(iv, "alpha",0); 
        alpha2.setDuration(2000); 
    AnimatorSet animset=new AnimatorSet(); 
        animset.play(alpha2).before(alpha1).with(move); 
        animset.start(); 
+0

ObjectAnimator適用於API 11及更高版本。我需要從API 8開始使用它。 –