在android中动态移动屏幕上的ImageView

发布于 2025-01-04 04:53:03 字数 229 浏览 2 评论 0原文

我正在尝试在我的应用程序中模拟鼠标光标的移动。我最初将光标图像放入 xml 文件中,并在 onCreate() 方法中初始化此图像视图。我计划在用户触摸屏幕时更改光标图像的位置,直到发生动作事件。此外,活动类实现 onTouchListener 并重写 onTouch() 方法。但是,我无法以编程方式更改图像在布局上的位置。因此,我需要动态更改/设置图像在屏幕上的位置。有没有办法在android中实现这样的运动?

提前致谢,

I'm trying to simulate the movements of a mouse cursor in my application. I initially put a cursor image to xml file and I initialize this imageview in onCreate() method. I'm planning to change the position of the cursor image when user touchs to the screen until action up event occurs. Also, activity class implements onTouchListener and overrides onTouch() method. However, I couldn't change the position of the image on the layout programmatically. Therefore, I need to change/set the position of image dynamically on the screen. Is there any way to implement such movement in android?

Thanks in advance,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

故人爱我别走 2025-01-11 04:53:03

如果你只想设置位置,那么可以通过各种API来完成;

1.

mMyImg.setX();
mMyImg.setY();

2.

mMyImg.setLeft();
mMyImg.setTop();

3.

mMyImg.setTranslationX();
mMyImg.setTranslationY();

但是,也有一些方法可以通过动画来完成此操作。看一下:

4.

mMyImg.animate().translationX();
mMyImg.animate().trnaslationY();


5.

mMyImg.animate().translationXBy();
mMyImg.animate().translationYBy();

If setting the position is all you want, then can be done by various APIs;

1.

mMyImg.setX();
mMyImg.setY();

2.

mMyImg.setLeft();
mMyImg.setTop();

3.

mMyImg.setTranslationX();
mMyImg.setTranslationY();

However, there are methods which can do this w/ animation as well. Have a look at:

4.

mMyImg.animate().translationX();
mMyImg.animate().trnaslationY();

or
5.

mMyImg.animate().translationXBy();
mMyImg.animate().translationYBy();
别低头,皇冠会掉 2025-01-11 04:53:03

public boolean onTouch(View v, MotionEvent arg1) 将以 MotionEvent 作为参数。

MotionEvent 将具有 MotionEvent.ACTION_DOWN、MotionEvent.ACTION_UP、MotionEvent.ACTION_MOVE 操作。
使用它们并更新光标图像位置上的位置。

public boolean onTouch(View v, MotionEvent arg1) will have MotionEvent as parameter.

that MotionEvent will have MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP, MotionEvent.ACTION_MOVE actions.
use those and update the position on the cursor image position.

忘东忘西忘不掉你 2025-01-11 04:53:03

您想要一个查看动画

您将使用翻译动画。您可以告诉它从哪里移动以及从哪里移动以及需要多长时间。

这是一个很好的动画教程,它包括一些翻译的。

You want a View Animation.

You'll use the Translate Animation. You can tell it where to move to and from, and how long to take doing so.

Here is a nice tutorial for Animations, it includes some translate ones.

赠我空喜 2025-01-11 04:53:03

如果您没有得到答案,您可以尝试:

image.setPadding((int) me.getRawX() - 50,
                    (int) me.getRawY() - 30, 0, 0);

if you have not get an answer you can try:

image.setPadding((int) me.getRawX() - 50,
                    (int) me.getRawY() - 30, 0, 0);
痴情换悲伤 2025-01-11 04:53:03

我已经通过使用以下代码块解决了这个问题

final ImageView imageView = (ImageView)findViewById(R.id.myImageVieww);
imageView.setX(x);
imageView.setY(y);
imageView.invalidate();

感谢您的回答。

I have solved this problem by using following code blocks

final ImageView imageView = (ImageView)findViewById(R.id.myImageVieww);
imageView.setX(x);
imageView.setY(y);
imageView.invalidate();

Thanks for your answers.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文