【发布时间】:2017-07-13 00:14:21
【问题描述】:
如何在视图上应用平移动画和缩放动画。我必须同时缩小视图将视图移动到另一个视图位置。
如何将视图从其位置缩放到另一个视图位置(第二个视图不固定)?
startView - 翻译视图
finishView - 动画结束的地方。
**代码**
private void startAnimation(View startView, View finishView) {
int startX = startView.getLeft() + startView.getWidth() / 2;
int startY = startView.getTop() + startView.getHeight() / 2;
int startViewLocation[]=new int[2];
startView.getLocationInWindow(startViewLocation);
int finishViewLocation[]=new int[2];
finishView.getLocationInWindow(finishViewLocation);
int endX = finishViewLocation[0];
int endY=finishViewLocation[1];
System.out.println("statX " + startX + " " + (startView.getLeft() + startView.getWidth() / 2));
System.out.println("statY " + startY+" "+(startView.getTop() + startView.getHeight() / 2));
System.out.println("endX " + endX+" "+finishViewLocation[0]);
System.out.println("endY " + endY+" "+finishViewLocation[1]);
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0,
TranslateAnimation.ABSOLUTE, endX, 0, 0,
TranslateAnimation.ABSOLUTE, endY);
ScaleAnimation scaleAnimation = new ScaleAnimation(1.0f, 0.0f, 1.0f,
0.0f);
AnimationSet set = new AnimationSet(true);
set.addAnimation(translateAnimation);
set.addAnimation(scaleAnimation);
set.setFillAfter(true);
set.setDuration(2000);
set.setAnimationListener(new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
}
});
startView.startAnimation(set);
}
【问题讨论】:
-
缩放动画定义在哪里?
-
@madhu 对不起,我错误地删除了这一行。我已经编辑了帖子。
标签: android animation translate-animation