自定义视图属性的setter

时间:2017-06-05 09:06:38

标签: android objectanimator

我有一个名为ColoredCircle的自定义视图。它得到了attr名为" circlecolor"。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ColoredCircle">
    <attr name="circlecolor" format="color" />
</declare-styleable>
</resources>

根据Google Creating a View Class,我的二传手应该是这样的:

public void setCircleColor(int color){
    this.color = color;
    invalidate();
    requestLayout();
}

如果我直接调用它,这个setter会按预期工作,但我想用ObjectAnimator调用setter。根据谷歌Property Animation,它应该适用于我的二传手。

&#34;您要设置动画的对象属性必须具有set<PropertyName>()形式的setter函数(在camel情况下)。因为ObjectAnimator在动画期间自动更新属性,所以它必须能够使用此setter方法访问该属性。例如,如果属性名称为foo,则需要使用setFoo()方法。&#34;

但是这个电话完全被忽略了:

ObjectAnimator colorFade = ObjectAnimator.ofObject(coloredCircle, 
"circlecolor", new ArgbEvaluator(), coloredCircle.getColor(), newColor);
colorFade.setDuration(300);
colorFade.start();

感谢您的时间

0 个答案:

没有答案