运行时动态布局更改

时间:2010-05-25 00:51:00

标签: android absolutelayout

对于一个应用程序我需要将一些对象放在我想要它们的确切位置,因此这次我需要使用AbsoluteLayout。

我想动态添加按钮,就像在以下XML中一样 - 但是在运行时。

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button 
     android:id="@+id/backbutton"
     android:text="TEST123"
     android:layout_x="120px"
     android:layout_y="120px"
     android:layout_width="100px"
     android:layout_height="100px" />
</AbsoluteLayout>

我如何存档?我尝试使用以下代码添加按钮,但到目前为止我还没有找到设置layout_x和layout_y的函数。我怎样才能做到这一点?感谢。

AbsoluteLayout al = new AbsoluteLayout(this);
Button t = new Button(this);
t.setHeight(300);
t.setWidth(300);
t.setText("TEST123");
// x y ???
setContentView(al);

2 个答案:

答案 0 :(得分:1)

将视图添加到布局时,您可以提供LayoutParams,您可以在其中指定视图的布局信息。

然而,AbsoluteLayouts已被弃用,理由充分。你将如何处理不同的屏幕尺寸和分辨率?您应该能够使用未弃用的布局对象的组合来创建您要查找的布局。请参阅developer docs作为起点。

如果您更详细地描述目标,有人应该能够帮助您选择正确的布局。

答案 1 :(得分:1)

您应该尝试使用Canvas方法。

 onDraw(Canvas canvas)

使用画布 - 不会创建实际按钮,但您可以使用图像。 另请查看以下链接:Android drawing button to canvas with custom view?