java 使用材质动画更改视图的大小(展开或折叠)。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 使用材质动画更改视图的大小(展开或折叠)。相关的知识,希望对你有一定的参考价值。
package com.example.rahul.viewexpandanimation;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Transformation;
/**
* Created by rahul on 7/11/15.
*/
public class SizeChangeAnimation extends Animation {
private int startHeight;
private int deltaHeight;
private int startWidth;
private int deltaWidth;
private View view;
public SizeChangeAnimation(View view) {
this.view = view;
}
public void setHeights(int start, int end) {
this.startHeight = start;
this.deltaHeight = end - this.startHeight;
}
public void setWidths(int start, int end) {
this.startWidth = start;
this.deltaWidth = end - this.startWidth;
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
if (startHeight != 0) {
if (deltaHeight > 0) {
view.getLayoutParams().height = (int) (startHeight + deltaHeight * interpolatedTime);
} else {
view.getLayoutParams().height = (int) (startHeight - Math.abs(deltaHeight) * interpolatedTime);
}
}
if (startWidth != 0) {
if (deltaWidth > 0) {
view.getLayoutParams().width = (int) (startWidth + deltaWidth * interpolatedTime);
} else {
view.getLayoutParams().width = (int) (startWidth - Math.abs(deltaWidth) * interpolatedTime);
}
}
view.requestLayout();
}
}
以上是关于java 使用材质动画更改视图的大小(展开或折叠)。的主要内容,如果未能解决你的问题,请参考以下文章
水平 ScrollView (SwiftUI) 中的动画展开/折叠组
AngularJs ul 使用幻灯片动画展开/折叠
动画视图并中途停止
如何在 SwiftUI 中制作“显示”式的折叠/展开动画?
展开和折叠动画在 ios6 中不起作用
Xcode 单击时折叠视图或元素