我正在尝试做一些相当简单的事情:通过增加X或Y坐标来移动图像视图。
最初,我在图像视图上使用了功能getX,getY,setX和setY,这些功能在仿真器中有效。但是,在手机上使用它时,在这些功能上出现了一个名为NoSuchMethodError的错误。

这是我得到的确切错误(我在上面列出的每个函数中都得到了此错误):
java.lang.NoSuchMethodError:android.widget.ImageView.getX

根据我的研究,这是由于setX和setY仅在API11上实现的,在这种情况下,我们使用的是API10。我尝试了多种其他方式,例如使用setMatrix,changePos()和其他一些函数来更改ImageView的位置。

我的问题是,如果我使用的是API10,可以使用什么来移动像这样的ImageView?

最佳答案

您可以尝试使用布局参数。假设您正在使用FrameLayout或任何其他支持边距的布局

private ImageView myView;// populated in onCcreate

private void moveImage(int x, int y) {
    ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)myView.getLayoutParams();
    lp.leftMargin = x;
    lp.rightMargin = y;
    requestLayout();
}

10-06 07:25
查看更多