如果您正在将对话框作为活动创建,则可以按照以下方法进行:
您可以创建动画类:
public class DropDownToMiddleAnimation extends Animation {
public int height, width;
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
this.width = width;
this.height = height;
setDuration(500);
setFillAfter(true);
setInterpolator(new LinearInterpolator());
}
Camera camera = new Camera();
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
Matrix matrix = t.getMatrix();
camera.save();
camera.getMatrix(matrix);
matrix.setTranslate(0, ((height/2) * interpolatedTime)) );
matrix.preTranslate(0, -height);
camera.restore();
this.setAnimationListener(this);
}
并且:
public class MiddleToTopAnimation extends Animation {
public int height, width;
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
this.width = width;
this.height = height;
setDuration(500);
setFillAfter(true);
setInterpolator(new LinearInterpolator());
}
Camera camera = new Camera();
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
Matrix matrix = t.getMatrix();
camera.save();
camera.getMatrix(matrix);
matrix.setTranslate(0, -((height/2) * interpolatedTime)) );
matrix.preTranslate(0, -height);
camera.restore();
this.setAnimationListener(this);
}
并将它们与您的对话框一起使用
LinearLayout ll = (LinearLayout) findViewById(R.id.parentLayout)
ll.startAnimation(new DropDownToMiddleAnimation())
ll.startAnimation(new MiddleToTopAnimation())
overridePendingTransition(R.anim.slide_down, R.anim.slide_up);
- Jayson Tamayo