2013-04-02 84 views
0

我有一個大問題。我用這個代碼從X位置動畫的ImageView以水平移動一個ImageView的0TranslateAnimated ImageView閃爍

這裏是動畫代碼

translate = new TranslateAnimation(0, translateX, 0, 0); 
    translate.setDuration(400); 
    translate.setAnimationListener(new AnimationListener() { 
     public void onAnimationEnd(Animation animation) { 
      txtTitle.setText(String.format("Translate: %d %d", translateX, lpView1.leftMargin)); 
      lpView1.leftMargin = 0; 
      mainSwitchBtn.setLayoutParams(lpView1); 
     } 

     public void onAnimationRepeat(Animation animation) { 
     } 

     public void onAnimationStart(Animation animation) { 
     } 

    }); 
    translate.reset(); 
    translate.setFillAfter(false); 
    mainSwitchBtn.clearAnimation(); 
    mainSwitchBtn.startAnimation(translate); 

當動畫結束時,我提出的ImageView爲0。在我請參閱ImageView的閃爍。我不知道什麼是問題。有人能幫我嗎?

編輯:成立問題

我已經成立的是在我的代碼有問題。

我已經取代了這個代碼

mainSwitchBtn.setLayoutParams(lpView1); 

有了這個

mainSwitchBtn.layout(0, 0, 0, 0); 

我不知道什麼是設置在佈局PARAMS邊距和設置PARAMS查看對象或使用.layout功能之間的差異但現在我沒有閃爍。

回答

0

好像動畫結束和你的ImageView返回到原來的非動畫圖片,也許你應該嘗試使用Horizo​​ntalScrollView而不是動畫

+0

感謝嘗試。我已經建立了解決方案 –

+0

很高興你找到它,順便讓我解釋它是如何工作的,在以前的代碼lpView1.leftMargin = 0; mainSwitchBtn.setLayoutParams(lpView1);你將margin設置爲0,但是可能有一些填充左邊的值不是0,而是在後面的代碼中將left position設置爲0,因此它位於最左邊。 –