2014-03-24 16 views

回答

3

我知道自從你問了4個月後,我決定發佈一個答案(所以別人也許可以從中受益)。

在可滑動面板上褪色相對容易。您只需在代表可滑動面板的佈局上啓動AlphaAnimation。您可能需要禁用面板陰影,方法是將

sothree:shadowHeight="0dp" 

添加到xml的主要佈局中。

更有趣的是,當您想從屏幕底部展開可滑動面板時(如果面板固定在底部)。在這種情況下,你可以使用下面的代碼:

import android.view.animation.Animation; 
import android.view.animation.Transformation; 

import com.sothree.slidinguppanel.SlidingUpPanelLayout; 

public class SlidingUpPanelResizeAnimation extends Animation { 

    private SlidingUpPanelLayout mLayout; 

    private float mTo; 
    private float mFrom = 0; 

    public SlidingUpPanelResizeAnimation(SlidingUpPanelLayout layout, float to, int duration) { 
     mLayout = layout; 
     mTo = to; 

     setDuration(duration); 
    } 

    @Override 
    protected void applyTransformation(float interpolatedTime, Transformation t) { 
     float dimension = (mTo - mFrom) * interpolatedTime + mFrom; 

     mLayout.setPanelHeight((int) dimension); 

     mLayout.requestLayout(); 
    } 
} 

而且通過啓動動畫:

SlidingUpPanelLayout slidingUpPanelLayout = (SlidingUpPanelLayout) findViewById(R.id.id_of_your_major_layout); 

int slideablePanelHeight = 100; 
int animationDuration = 800; 

SlidingUpPanelResizeAnimation animation = new SlidingUpPanelResizeAnimation(slidingUpPanelLayout, slideablePanelHeight, animationDuration); 
mSlidingLayout.startAnimation(animation); 
+0

非常感謝你,我會嘗試當我有時間! – deimos1988