在android中动态移动屏幕上的ImageView
我正在尝试在我的应用程序中模拟鼠标光标的移动。我最初将光标图像放入 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果你只想设置位置,那么可以通过各种API来完成;
1.
2.
3.
但是,也有一些方法可以通过动画来完成此操作。看一下:
4.
或
5.
If setting the position is all you want, then can be done by various APIs;
1.
2.
3.
However, there are methods which can do this w/ animation as well. Have a look at:
4.
or
5.
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.
您想要一个查看动画。
您将使用翻译动画。您可以告诉它从哪里移动以及从哪里移动以及需要多长时间。
这是一个很好的动画教程,它包括一些翻译的。
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.
如果您没有得到答案,您可以尝试:
if you have not get an answer you can try:
我已经通过使用以下代码块解决了这个问题
感谢您的回答。
I have solved this problem by using following code blocks
Thanks for your answers.