Android 添加自定义属性到 View.animate().*

标签 android view sdk

是否可以在 Android 4.x 中向 View.animate().* 添加自定义属性?

Android 4.x 提供了 View.animate(),它允许对多个属性进行动画处理。 喜欢:

View.animate().alpha(0.5f).setDuration.start();

我想向该对象添加自定义属性,例如:

CustomView.animate().xyz(0.1f).setDuration.start();

最佳答案

您可以使用自定义动画来做到这一点:

public class CustomAnim extends Animation {

    private CustomView mLayout;
    private float finalVal;
    private float startVal;

    public CustomAnim(CustomView layout, float finalVal) {
        this.mLayout = layout;
        this.finalVal = finalVal;
        this.startVal = layout.xyz();
    }

    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        mLayout.setXYZ(interpolatedTime * (finalVal - startVal) + startVal);
    }

    @Override
    public boolean willChangeBounds() {
        return true;
    }   
}

或者,如果您的属性有 getter 和 setter 方法,例如 setXYZ getXYZ,您可以使用 property animation

关于Android 添加自定义属性到 View.animate().*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13995330/

相关文章:

android - 在 MediaCodec 生成的用于 lockCanvas() 的表面上应用 fragment 着色器

templates - symfony - 从 View 中调用一个 Action ?

scala - 什么是 Collection View ?您何时想使用它们?

android - 无法检测设备兼容性。请选择目标设备

typescript - 具有流输入和输出的 Azure 文本转语音

android - 推荐的最低 Android 应用 SDK

android - 如何将我的菜单系统移植到没有物理菜单按钮的设备,例如关系?

java - ArrayList 返回空值

android - 如何减少 web-RTC 库的大小?

java - 如何使相对布局半透明但不使 Activity 半透明