我正在尝试做一些相当简单的事情:通过递增X或Y坐标来移动图像视图。 最初我在图像视图中使用了函数getX,getY,setX和setY,它们在模拟器中工作。但是,当它与手机一起使用时,我在这些功能上遇到了一个名为NoSuchMethodError的错误。
这是我得到的确切错误(我为上面列出的每个函数都得到了这个错误): java.lang.NoSuchMethodError:android.widget.ImageView.getX
根据我的研究,这是因为setX和setY仅在API11上实现,在这种情况下我们使用的是API10。我尝试了其他各种方法,例如使用setMatrix,changePos()和其他一些函数来改变ImageView的位置。
我的问题是,如果我使用API10,我可以使用什么来移动像这样的ImageView?
答案 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类型。