android 动画坐标,android – 在翻译动画时是否可以获得ImageView的实时坐标?

本文介绍如何在Android中使用TranslateAnimation获取ImageView动画过程中的实时坐标,并探讨了使用ObjectAnimator替代的方法。通过ObjectAnimator的addUpdateListener获取动画的动态位置并更新UI显示。
摘要由CSDN通过智能技术生成

我在ImageView中有一个子弹的图像,可以执行翻译动画.

我需要显示实时坐标以显示它与目标的实时距离.

ImageView myimage = (ImageView)findViewById(R.id.myimage);

Animation animation = new TranslateAnimation(100, 200, 300, 400);

animation.setDuration(1000);

myimage.startAnimation(animation);

animation.setRepeatCount(Animation.INFINITE);

在进行TranslateAnimation时,是否可以获得图像的实时x和y坐标?

如果使用TranslateAnimation不可能,还有其他方法可以在运动时提供图像的实时坐标吗?

我试过了 –

int x = myimage.getLeft();

int y = myimage.getTop();

int[] firstPosition = new int[2];

myimage.measure(View.MeasureSpec.EXACTLY, View.MeasureSpec.EXACTLY);

myimage.getLocationOnScreen(firstPosition);

int x = firstPosition[0];

int y = firstPosition[1];

但在这两种方式中,它给出了ImageView的初始静态坐标.

解决方法:

以下是基于user3249477和Vikram所说的完整示例:

final TextView positionTextView = (TextView)findViewById(R.id.positionTextView);

ImageView myimage = (ImageView)findViewById(R.id.imageView);

ObjectAnimator translateXAnimation= ObjectAnimator.ofFloat(myimage, "translationX", 0f, 100f);

ObjectAnimator translateYAnimation= ObjectAnimator.ofFloat(myimage, "translationY", 0f, 100f);

translateXAnimation.setRepeatCount(ValueAnimator.INFINITE);

translateYAnimation.setRepeatCount(ValueAnimator.INFINITE);

AnimatorSet set = new AnimatorSet();

set.setDuration(1000);

set.playTogether(translateXAnimation, translateYAnimation);

set.start();

translateXAnimation.addUpdateListener(new AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

imageXPosition = (Float)animation.getAnimatedValue();

}

});

translateYAnimation.addUpdateListener(new AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

imageYPosition = (Float)animation.getAnimatedValue();

String position = String.format("X:%d Y:%d", (int)imageXPosition, (int)imageYPosition);

positionTextView.setText(position);

}

});

标签:android,imageview,coordinates,translate-animation

来源: https://codeday.me/bug/20191007/1869133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值