0

我想让位图的一部分可点击,我的布局如下所示:

________________________________
|             #####             |
|             #####             |
|      ___________________      |
|      |                 |      |
|      |                 |      |
|      |      image      |      |
|      |                 |      |
|      |                 |      |
|      ___________________      |
________________________________

我认为最简单的方法是在具有相对布局的图像上放置一个按钮:

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/ImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ImageView>

    <Button
        android:id="@+id/Button"
        android:layout_width="200dip"
        android:layout_height="150dip"/>
</RelativeLayout>

但是我还没有弄清楚如何让按钮与图像的左上角对齐(而不是像现在这样)相对布局的左上角。这可以通过相对布局实现吗?

也欢迎提出其他方法的建议,我考虑过这个: http ://blahti.wordpress.com/2012/06/26/images-with-clickable-areas/ 但对于我的简单矩形区域来说,这似乎有点矫枉过正。

4

3 回答 3

1

试试这个:

    <ImageView
        android:id="@+id/ImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ImageView>

    <Button
        android:id="@+id/Button"
        android:layout_alignLeft="@id/ImageView"
        android:layout_alignTop = "@id/ImageView"
        android:layout_width="200dip"
        android:layout_height="150dip"/>
</RelativeLayout>
于 2013-02-07T15:03:41.790 回答
1

你也可以使用

<Button
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="@drawable/image1" 
        android:drawableLeft="@drawable/image2t"
        android:drawableRight="@drawable/image3"
        android:drawableTop="@drawable/image4"
        android:drawableTop="@drawable/image4"
        android:textColor="#ffffff"
        />
于 2014-08-02T10:43:15.120 回答
0

好的,我的 google-fu 改进了,多亏了asenovm,我想通了!imageview 有一个 android:adjustViewBounds 属性,默认设置为 false。将其设置为 true 会调整图像视图的边界,以便 alignLeft 和 alignTop 对按钮正常工作。

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/ImageView"
        android:layout_centerInParent="true" 
        android:adjustViewBounds="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </ImageView>

    <Button
        android:id="@+id/Button"
        android:layout_alignLeft="@id/ImageView"
        android:layout_alignTop = "@id/ImageView"
        android:layout_width="200dip"
        android:layout_height="150dip"/>
</RelativeLayout>
于 2013-02-13T05:47:49.750 回答