我正在制作一个游戏,其中imageView
球需要从屏幕上的一个点移动到另一个点。球的起点位于洞的imageView
处,我希望它在洞的另一个imageView
处结束。
无论如何,我没有找到任何方法来获得起点(第一洞)或终点(第二洞)的位置。我尝试使用getLocationOnScreen(Loc)
,但它一直返回0。
我真的需要你的帮助,因为我正在寻找解决方案很长一段时间。 如果有人能写出一个可行的详细答案,我将不胜感激。 在此先感谢:)
以下是我的尝试:
int fromLoc[] = new int[2];
holes[6].getLocationOnScreen(fromLoc);
float startX = fromLoc[0];
float startY = fromLoc[1];
和此:
RelativeLayout.MarginLayoutParams params =
(RelativeLayout.MarginLayoutParams) imgBall0.getLayoutParams();
params.setMargins(holes[5].getLeft(), holes[5].getTop(),
holes[5].getRight(), holes[5].getBottom()); //all in pixels
imgBall0.setLayoutParams(params);
holes[5]
是imgBall0
需要到达的终点。
holes[5]
是imageButton
,位于relativeLayout
和LinearLayout
。
再次感谢!
答案 0 :(得分:0)
您是否尝试过getX()和getY()方法?它们返回一个以像素为单位表示视图位置的int。
答案 1 :(得分:0)
如果你想制作一个流畅动画的游戏,我建议使用全屏SurfaceView或View并用画布绘制球和洞。它不适合使用像ImageView这样的Android Widget制作游戏。