簡體   English   中英

Android Alpha動畫不會在動畫過程中重新繪制

[英]Android alpha animation not repainting during the animation

我有一個帶有滑動菜單的活動,它作為菜單出現。 活動開始時,按鈕在那里並淡出以允許全屏顯示。 單擊抽屜頂部的按鈕時(此時Alpha為0),它應淡入並彈出菜單。 再次單擊該菜單將折疊,該按鈕將逐漸淡出。 為此,我在活動中具有以下代碼。

初始淡出效果如預期的那樣。 活動已創建,按鈕淡出。 當我單擊該按鈕以展開菜單時,該按鈕不出現,而當我再次單擊它時,該按鈕在那里並且不會淡出。 奇怪的是,實際上是調用了動畫,並且如果我將scrollviews移動到抽屜后面,而在調用animatin之后的動畫,則只要我保持其背景中的視圖運動,動畫就可以正常進行。 如果我停止移動這些視圖,動畫將凍結為某些alpha值。

為什么第一個功能正常,而其他功能不正常? 我該如何解決?

drawer = (SlidingDrawer) this.findViewById(R.id.slidingDrawer1);
    drawer.setOnDrawerCloseListener(new OnDrawerCloseListener(){

        public void onDrawerClosed() {
            doFadeOut();
        }       
    });
    drawer.setOnDrawerOpenListener(new OnDrawerOpenListener(){

        public void onDrawerOpened() {
            doFadeIn();             
        }           
    });


fadeOut = AnimationUtils.loadAnimation(this, R.anim.buttonfadeout);
    fadeOut.setFillAfter(true);
    fadeIn = AnimationUtils.loadAnimation(this, R.anim.buttonfadein);
    fadeIn.setFillAfter(true);
    doFadeOut(); //this is the end of onCreate and fades when the activity is created

這些是活動中的方法

public void doFadeOut(){
    fadeOut.reset();
    menuButton.clearAnimation();
    menuButton.startAnimation(fadeOut);
}

public void doFadeIn(){
    fadeIn.reset();
    menuButton.clearAnimation();
    menuButton.startAnimation(fadeIn);
}

您實現了AnimationListener嗎?

您可以使用onAnimationEnd() 您可以在此處放置另一個偵聽器,該偵聽器將觸發另一個Alpha動畫,以便您在關閉抽屜時淡出按鈕。

我從動畫的工作中學到,如果您有多個動畫,則應該始終實現AnimationListener,因為android無法自行決定如何處理許多動畫。

在Android Developers上查看以下文檔:

動畫偵聽器文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM