我在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像素”);
有办法吗?
答案 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);