在API 11(Android)之前设置视图的位置X / Y

时间:2012-07-25 07:45:00

标签: android view

我想设定我的观点。 有方法setX / setY或setLeft / setTop但这些方法自API 11起可用。 为了在其他API中拥有这个功能,有什么解决方案。

3 个答案:

答案 0 :(得分:2)

这取决于您使用的布局。使用RelativeLayout,您可以执行以下操作:

RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams)child.getLayoutParams();

layoutParams.leftMargin = x;
layoutParams.topMargin = y;

child.setLayoutParams(layoutParams);

答案 1 :(得分:0)

尝试覆盖onDraw方法并将x / y转换为你的画布吗?

@Override
protected function onDraw(Canvas c){
    c.save();
    c.translate(x,y);
    c.restore();
}

我认为这不是一个好的解决方案,但它是我唯一的想法。

答案 2 :(得分:0)

我唯一能够“开箱即用”的工作就是设置视图填充。

View.setPadding(left, top, right, bottom);

这不是最好的解决方案,但它适用于早于11的API,并会模拟以X,Y方式移动视图。

希望有所帮助!