我正在使用以下项目:https://github.com/umano/AndroidSlidingUpPanel
到目前为止它的效果非常好,但我有一个问题:我想隐藏可滑动的面板,直到我按下一个按钮,然后面板应该被淡入,带动画;当前按下按钮时显示面板,但没有动画,我不知道如何实现所述动画。
非常欢迎任何想法!
答案 0 :(得分: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);