Android:将setX()替换为较低的API

时间:2015-12-18 11:43:08

标签: android android-layout

我正在编写一个在按钮上绘制布局的方法。我的问题是我在较低的API上创建的布局的位置。在较新的情况下,我使用的是setX()setY()方法,但由于这种情况不起作用,我尝试设置此处所述的布局参数Android - Use of view.setX() and setY in api 8,但我没有得到我想要的结果。有了这个

int[] location = new int[2];
button.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
borderRelativeLayout.setX(x);
borderRelativeLayout.setY(y);
viewGroup.addView(borderRelativeLayout)

我实现了这个目标: correct position

但如果我使用此代码来支持较低的API

relativeLayoutparams.leftMargin = x;
relativeLayoutparams.topMargin = y;
viewGroup.addView(borderRelativeLayout, relativeLayoutparams);

我得到了这个结果:incorrect

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

对于API 1:

int[] location = new int[2];
button.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
borderRelativeLayout.offsetLeftAndRight(x - borderRelativeLayout.getLeft());
borderRelativeLayout.offsetTopAndBottom(y - borderRelativeLayout.getTop());

编辑:
您是否考虑过背景可绘制效果?