通过设置其坐标来移动Android ImageView

时间:2013-08-01 23:05:19

标签: java android eclipse imageview nosuchmethoderror

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

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

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

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

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:1)

以下是您的示例:

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

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