将ImageView放置在另一个ImageView的特定坐标处

时间:2014-07-30 09:06:08

标签: java android imageview coordinates android-imageview

您好我正在寻找解决我遇到的问题的解决方案在Android中有没有办法将一个ImageView放在另一个ImageView的指定坐标上?
例如,获取ImageView A的特定坐标(比如死点),然后将ImageView B放在ImageView A的坐标上。导致ImageView B放在ImageView B中间的死点。然后允许我在Coords周围进行更改,以便在ImageView A中移动ImageView B.如果我以一种令人困惑的方式写入此内容,请致歉

1 个答案:

答案 0 :(得分:1)

我的想法是使用RelativeLayout对齐两者的左上角,然后使用padding来偏移顶部的一角。所以将im2放在im1上x = 20,y = 15:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@id/+im1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:id="@id/+im2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/im1"
        android:layout_alignLeft="@id/im1"
        android:paddingTop="15px"
        android:paddingLeft="20px" />
</RelativeLayout>

您可以通过ImageView.setPadding从代码更新填充。

你可以尝试使用边距,但是从代码中弄乱边距很难。

还有一个长期被弃用的AbsoluteLayout,但我不建议使用它,创建自己的布局管理器可能更容易,并不是那么难,可以封装代码你很好地计算了偏移量。

修改 使用上面的内容(填充或可能是保证金,如果你需要去负)你可以移动图像,仍然让x / y由布局计算。

如果你想要死亡中心两个图像,只需在android:layout_centerInParent="true"中添加RelativeLayout

虽然如果你想移动它我会建议使用画布在其上绘制你的“演员”,然后将画布设置为显示在单个ImageView;或者画布的instaed在问题的评论中使用建议的库。