Android - 以编程方式设置图像的X,Y.

时间:2011-06-20 23:31:43

标签: android

我在AbsoluteLayout中有两个ImageView。

<AbsoluteLayout android:id="@+id/AbsoluteLayout01" 
android:layout_width="fill_parent" android:background="@drawable/whitebackground" 
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">

<ImageView android:id="@+id/floorPlanBackgroundImage"
    android:src="@drawable/ic_tab_lights_gray"
    android:scaleType="center" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>

<ImageView android:id="@+id/fpLight"
    android:src="@drawable/ic_tab_lights_gray"
    android:scaleType="center" android:layout_x="50px" android:layout_y="50px" 
    android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>


</AbsoluteLayout>

floorPlanBackgroundImage是从尺寸为800x600的图像动态设置的。可以围绕它滚动。

我的第二张图片,fpLight代表房间里的灯光。这是一个小的20x20图像。我需要做的是改变layout_x&amp;代码中的layout_y属性,但我没有看到在ImageView中设置它的方法。

我期待这样的事情......

fpLight.setLayoutX( “55像素”);

有办法吗?

2 个答案:

答案 0 :(得分:9)

您应该使用:

AbsoluteLayout.LayoutParams param = new AbsoluteLayout.LayoutParams(int width, int height, int x, int y)

布局具有首选x和y的参数对象,并通过

将其设置为fpLight图像
fpLight.setLayoutParams(param);

AbsoluteLayout已弃用

您应该使用RelativeLayout代替

示例:

假设你想要一个尺寸为50x60的ImageView(位置为70x80)

// RelativeLayout. though you can use xml RelativeLayout here too by `findViewById()`
RelativeLayout relativeLayout = new RelativeLayout(this);
// ImageView
ImageView imageView = new ImageView(this);

// Setting layout params to our RelativeLayout
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(50, 60);

// Setting position of our ImageView
layoutParams.leftMargin = 70;
layoutParams.topMargin = 80;

// Finally Adding the imageView to RelativeLayout and its position
relativeLayout.addView(imageView, layoutParams);

答案 1 :(得分:7)

yourImageView.setX(floatXcoord);
yourImageView.setY(floatYcoord);