通过设置坐标移动Android ImageView



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

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

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

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

您可以尝试使用布局参数。假设您使用的是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();
}

这里有一个例子:

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

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

最新更新