【问题标题】:Umano Android SlidingUpPanel - animationUmano Android SlidingUpPanel - 动画
【发布时间】:2014-05-02 05:38:13
【问题描述】:

我正在使用以下项目:https://github.com/umano/AndroidSlidingUpPanel

到目前为止它工作得很好,但我有一个问题:我想隐藏可滑动面板,直到我按下一个按钮,然后面板应该淡入,并带有动画;目前按下按钮时会显示面板,但没有动画,我不知道如何实现所述动画。

非常欢迎任何想法!

【问题讨论】:

    标签: android animation panel


    【解决方案1】:

    我知道你问已经 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);
    

    【讨论】:

    • 非常感谢,有时间我去试试!
    猜你喜欢
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多