0

我想做的是创建一个穷人版本的 gps 地图。我已经设置了一个“地图”图片作为 AbsoluteLayout 的背景,然后创建了一个 20x20 的小正方形图片,我需要将其移动到不同的坐标。如何在 Java 代码中执行此操作?

 <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 坐标的方法。

4

2 回答 2

4

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);     
于 2011-12-02T18:31:47.993 回答
0

以下是如何设置ImageView内部的x 和 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);
}

我同意 Trevor,尽管您可能希望避免使用AbsoluteLayout,因为它已被弃用。

于 2011-12-03T05:09:59.240 回答