1

我正在尝试做一些相当简单的事情:通过增加 X 或 Y 坐标来移动图像视图。最初,我在图像视图上使用了函数 getX、getY、setX 和 setY,它们在模拟器中工作。但是,当将它与手机一起使用时,我在这些功能上遇到了一个名为 NoSuchMethodError 的错误。

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

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

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

4

2 回答 2

1

您可以尝试使用布局参数。假设您正在使用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();
}
于 2013-08-01T23:38:07.977 回答
1

这是给你的一个例子:

LinearLayout.LayoutParams lp = (android.widget.LinearLayout.LayoutParams) logoImage
                .getLayoutParams();
    lp.setMargins(0, 28, 0, 0);
        logoImage.setLayoutParams(lp);

如果您的布局是相对布局,则更改类型 LinearLayout.LayoutParams 。

于 2013-08-02T02:56:44.393 回答