4
我使用下列項目:https://github.com/umano/AndroidSlidingUpPanelUmano的Android SlidingUpPanel - 動畫
它工作得很好,到目前爲止,但我有一個問題:我想隱藏的滑動面板,直到我按下一個按鈕,然後在面板應用動畫淡入;當前按下按鈕時顯示面板,但沒有動畫,我不知道如何實現所述動畫。
任何想法都會非常受歡迎!
我使用下列項目:https://github.com/umano/AndroidSlidingUpPanelUmano的Android SlidingUpPanel - 動畫
它工作得很好,到目前爲止,但我有一個問題:我想隱藏的滑動面板,直到我按下一個按鈕,然後在面板應用動畫淡入;當前按下按鈕時顯示面板,但沒有動畫,我不知道如何實現所述動畫。
任何想法都會非常受歡迎!
我知道自從你問了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);
非常感謝你,我會嘗試當我有時間! – deimos1988