0

我用 .xml 制作了我的 UI,但我想动态地给出按钮的方向。例如;

 <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>

然后是我的活动类,我通过动态改变了一些东西。

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

我已经改变了高度和宽度..但我找不到改变 x 和 y 方向的方法。

4

2 回答 2

1

试试setPadding(int top,int left,int right,int bottom)方法。

AbsoluteLayout al = new AbsoluteLayout(this);
    Button t = new Button(this);
    t.setHeight(300);
    t.setWidth(300);
    t.setText("TEST123");
    t.setPadding(120,120,0,0);
    setContentView(al);

我不确定屏幕的其他元素是否适合,但我只是假设按钮是屏幕中唯一的元素。

于 2011-05-09T20:30:01.217 回答
0

顺便说一句,你知道 1 dip = 多少 px 吗?

http://developer.android.com/guide/practices/screens_support.html

与密度无关的像素 (dp) - 应用程序可用于定义其 UI 的虚拟像素单元,以与密度无关的方式表示布局尺寸或位置。

与密度无关的像素相当于 160 dpi 屏幕上的一个物理像素,这是平台假定的基线密度(如本文档后面所述)。在运行时,平台会根据使用的屏幕的实际密度透明地处理所需的 dp 单位的任何缩放。dp 单位到屏幕像素的转换很简单:像素 = dps * (密度 / 160)。例如,在 240 dpi 屏幕上,1 dp 等于 1.5 个物理像素。强烈建议使用 dp 单位来定义应用程序的 UI,以确保在不同屏幕上正确显示 UI。

于 2011-05-09T21:09:10.510 回答