为了账号安全,请及时绑定邮箱和手机立即绑定

用ObjectorAnimator实现的,但点击实现子view的动画效果消失后,再点击主Button就不能显示了

设置了点击子view后的setAlpha和Visibility都不行,怎么点主button都不能在显示子view了,请教是怎么回事:

case R.id.id_imgb://点击子view,让其放大消失,其它view缩小消失

setSelected(arg0.getId());

//让被点击的view放大消失,其它view缩小消失

private void setSelected(int viewId)

{

ObjectAnimator animator;

ObjectAnimator animator1;

for (int i = 1; i < childs.size(); i++)

{

if ((childs.get(i)).getId() == viewId)

{

animator = ObjectAnimator.ofFloat(childs.get(i), View.SCALE_X,

1.0f, 3.0f).setDuration(300);

animator1 = ObjectAnimator.ofFloat(childs.get(i), View.SCALE_Y,

1.0f, 3.0f).setDuration(300);

} else

{

animator = ObjectAnimator.ofFloat(childs.get(i), View.SCALE_X,

1.0f, 0).setDuration(300);

animator1 = ObjectAnimator.ofFloat(childs.get(i), View.SCALE_Y,

1.0f, 0).setDuration(300);

}

ObjectAnimator animator2 = ObjectAnimator.ofFloat(childs.get(i),

View.ALPHA, 1.0f, 0).setDuration(300);

AnimatorSet set = new AnimatorSet();

set.playTogether(animator, animator1, animator2);

set.start();


正在回答

1 回答

ObjectAnimator是属性动画,执行完后是什么样,它以后就是什么样了,所以当你动画执行结束后,所有的子view透明度都为0,大小为3倍或者0倍,正确的做法是,打开时,将所有子view的样式和位置都重置(放回原来的位置,透明度置为1,大小为1倍)。

这个控件不应该用ObjectAnimator做,建议敲代码之前考虑好用哪种方法实现最合理

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android实现卫星菜单
  • 参与学习       26330    人
  • 解答问题       55    个

学习仿Path的卫星式菜单,课程涵盖了自定义控件的整个过程

进入课程

用ObjectorAnimator实现的,但点击实现子view的动画效果消失后,再点击主Button就不能显示了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信