作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我找不到一个很好的例子来说明如何做到这一点。
我有一个设置为 x 高度的 RelativeLayout。
我想添加一个将高度扩展到 x+y 高度的按钮。
有人可以向我推荐一个如何以编程方式执行此操作的好例子吗?
最佳答案
您标记了最接近的解决方案。这是确切的解决方案。我有同样的问题。希望这个答案对其他人有所帮助。
实例化ResizeAnimation
ResizeAnimation resizeAnimation = new ResizeAnimation(
view,
targetHeight,
startHeight
);
resizeAnimation.setDuration(duration);
view.startAnimation(resizeAnimation);
ResizeAnimation
类应该是这样的
public class ResizeAnimation extends Animation {
final int targetHeight;
View view;
int startHeight;
public ResizeAnimation(View view, int targetHeight, int startHeight) {
this.view = view;
this.targetHeight = targetHeight;
this.startHeight = startHeight;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
int newHeight = (int) (startHeight + targetHeight * interpolatedTime);
//to support decent animation, change new heigt as Nico S. recommended in comments
//int newHeight = (int) (startHeight+(targetHeight - startHeight) * interpolatedTime);
view.getLayoutParams().height = newHeight;
view.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth, int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
public boolean willChangeBounds() {
return true;
}
}
关于android - 如何用动画扩展布局高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8063466/
我是一名优秀的程序员,十分优秀!