ImageView内的AbsoluteLayout,如何设置ImageView的x,y坐标?
问题描述:
我想要做的是创建一个穷人版本的GPS地图。我已经设置了一个“地图”图片作为AbsoluteLayout的背景,然后创建了一个需要移动到不同坐标的小型20x20方形图片。我如何着手在Java代码中做这件事?ImageView内的AbsoluteLayout,如何设置ImageView的x,y坐标?
<AbsoluteLayout
android:id="@+id/llMapContainer"
android:layout_width="match_parent"
android:layout_height="390dp"
android:layout_x="0dp"
android:layout_y="44dp"
android:background="@drawable/a4000vert"
android:orientation="vertical" >
<ImageView
android:id="@+id/imgLocation"
android:layout_width="20px"
android:layout_height="20px"
android:layout_x="312px"
android:layout_y="300px"
android:src="@drawable/location" />
</AbsoluteLayout>
我有这个安装在我的Java文件: IV =(ImageView的)findViewById(R.id.imgLocation);
但现在我似乎无法找到任何允许我设置x和y坐标的方法。
答
AbsoluteLayout
已折旧,强烈建议不要使用它。您应该切换到使用其他形式的ViewGroup
,例如RelativeLayout
。
使用RelativeLayout
后,可以使用RelativeLayout.LayoutParams
类将子项的大小和位置(以及各种其他参数)添加到父代RelativeLayout
时指定。
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,200); // The desired size of the child
params.setMargins(50,50); // Position at 50,50
mRelativeLayout.addView(mViewToAdd, params);
答
这里是你如何设置X和您的ImageView
y坐标的AbsoluteLayout
内:
private void setLocation(int x, int y) {
final ImageView iv = (ImageView) findViewById(R.id.imgLocation);
final AbsoluteLayout.LayoutParams lp = (AbsoluteLayout.LayoutParams) iv.getLayoutParams();
lp.x = x;
lp.y = y;
iv.setLayoutParams(lp);
}
我特雷弗同意,虽然你可能要避免使用AbsoluteLayout
如果可能的话,因为它已被弃用。