android动画将视图移动到另一个视图
我有两个不同布局的视图,我想一个移动到另一个。我的代码怎么了?Y动画播放错误。第一个视图位于片段的布局中,第二个位于状态栏中android动画将视图移动到另一个视图,android,android-layout,coordinates,android-animation,Android,Android Layout,Coordinates,Android Animation,我有两个不同布局的视图,我想一个移动到另一个。我的代码怎么了?Y动画播放错误。第一个视图位于片段的布局中,第二个位于状态栏中 ... int p1[] = new int[2]; int p2[] = new int[2]; viewOne.getLocationInWindow(p1); viewTwo.getLocationInWindow(p2); AnimatorSet animatorSet = new AnimatorSet();
...
int p1[] = new int[2];
int p2[] = new int[2];
viewOne.getLocationInWindow(p1);
viewTwo.getLocationInWindow(p2);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet
.play(ObjectAnimator.ofFloat(expandedImageView, "X", p1[0], p2[0] - p1[0]))
.with(ObjectAnimator.ofFloat(expandedImageView, "Y", p1[1], p2[1] - p1[1]))
.with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_X, startScale))
.with(ObjectAnimator.ofFloat(expandedImageView, View.SCALE_Y, startScale));
我为您提供了另一个解决方案:(将viewOne移动到viewTwo)
它怎么会出错?@Whitney它应该移到屏幕的一角,但y没有长大。请看我的答案,这是直接相关的:对不起,我尝试了这段代码,但不起作用。我有一个imageview,我想将其移动到另一个固定的图像视图,但实际上正在将我的图像以对角线方向移动到upnote:初始化期间的视图将返回位置0,请尝试在
new Handler().postDelayed(new Runnable{},200)中执行此操作
@KirillKarmazin除了使用处理程序
之外,您还可以在viewTreeObserver
上使用onGlobalLayoutListener
,这样上面的代码就在viewTwo.viewTreeObserver.addOnGlobalLayoutListener{//动画代码在这里}
中。
TranslateAnimation animation = new TranslateAnimation(0, viewTwo.getX()-viewOne.getX(),0 , viewTwo.getY()-viewOne.getY());
animation.setRepeatMode(0);
animation.setDuration(3000);
animation.setFillAfter(true);
viewOne.startAnimation(animation);