温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

TranslateAnimation动画移动后ImageView自身x y坐标不会改变问题

发布时间:2020-07-18 19:48:08 来源:网络 阅读:4619 作者:译名1024 栏目:开发技术

   例如:

TranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta)这个是相对自身的就对坐标的移动,但移动后执行该动画的View自身X Y值不变,当手动设置坐标时,如

               view.setX(x);

               view.setY(y);

view的显示位置不会在当前的x,y坐标位置,而是在相对该位置执行过anim后的位置,而事件可以在该位置触发。

解决方案:使用Animation的监听

实例:  

ImageView img = new ……  创建ImageView

   

TranslateAnimation anim = new TranslateAnimation( 0, x, 0,y);


anim.setFillAfter(true);//设置移动后留在当前位置,不返回


anim.setDuration(500);

anim.setInterpolator(mAcitvity,android.R.anim.accelerate_decelerate_interpolator);


img.startAnimation(anim);

//设置动画监听器, 在监听到动画结束时清除img动画,设置img x,y坐标

anim.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

   img.clearAnimation();

   img.setX(x);

   img.setY(y);

}

});


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI