我正在尝试使用平移动画和缩放动画制作动画集,以使视图从其大小/位置移动到另一个视图大小/位置。
我试图通过getX / getY或getLocationOnScreen获取位置来提供翻译动画,但是第一个视图没有运气来匹配动画结束时的第二个:/
(同样适用于比例动画)
有什么想法吗?
答案 0 :(得分:0)
知道了...我的问题是我首先应用了翻译动画,并且它正在弄乱缩放动画的轴心点。
以下代码示例仅转换为X。
View viewFrom = findViewById(R.id.viewA);
View viewTo = findViewById(R.id.viewB);
// Getting delta from center
int delta = (viewTo.getLeft()+Math.round(viewTo.getWidth()*viewTo.getScaleX()))-(viewFrom.getLeft()+Math.round(viewFrom.getWidth()+viewFrom.getScaleX()));
float ratio = viewTo.getScaleX() / viewFrom.getScaleX();
Animation anim = new ScaleAnimation(1.f, ratio, 1.f, ratio, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
AnimationSet animSet = new AnimationSet(true);
animSet.setInterpolator(new DecelerateInterpolator());
animSet.addAnimation(anim);
anim = new TranslateAnimation(0, delta, 0, 0);
animSet.addAnimation(anim);
animSet.setDuration(500);
viewFrom.startAnimation(animSet);