android出了属性动画 ,对于开发者来说犹如沙漠的绿洲。但是在大家使用属性动画ObjectAnimator的时候,总会遇到的问题:
那就是该调用ofInt方法, 还是ofFloat方法,还是…; 方法中的propertyName参数要传什么字符串呢?
今天我就跟大家说说这个小技巧,如果已经知道的人请勿喷,或者有更好的可以给我留言。
首先我先给大家看几个ObjectAnimator的使用例子:
ObjectAnimator textColor = ObjectAnimator.ofInt((Button) view, "textColor", 0xff00ff00, 0xffff0000).setDuration(1000);
textColor.setRepeatMode(ObjectAnimator.RESTART);
textColor.setRepeatCount(-1);
textColor.start();
ObjectAnimator translationTwo = ObjectAnimator.ofFloat(view, "translationY", -view.getHeight(), 0).setDuration(1000);
translationTwo.start();
其中第一个例子用的是ofInt, 第二个用的是ofFloat, 为什么呢? 这个原因得从方法的第二个参数推到出来, 所以先跟大家说说第二个参数字符串怎么写,其实就是看view中带有的set方法,例如:”textColor”,其实对应的就是((Button)view).setTextColor(int color) 方法, “translationY” 其实对应的就是view.setTranslationY(float f) 方法。 这里大家注意到没,方法中所需的参数int, float。 这参数就是决定该动画在ObjectAnimator中要调用 ofInt 还是 ofFlaot 方法了。现在该使用什么方法确定了,那么例如ofFloat方法中第二个参数propertyName如何确定呢? 其实是来之view中对于的set方法,
例如:”translationY” 就是把setTranslationY 中的set去掉,然后剩下的字符串首字母小写就ok了。
完成, 如果大家有好的意见 可以给我留言哦!!!