1

我正在尝试将一些 ImageButtons 粘贴在 ImageView 上的特定位置。问题是我必须对 ImageButtons 使用绝对布局,并且当我更改屏幕分辨率时,所有 ImageButtons 都会从它们的位置移动。

我一直在整个网络上寻找答案,但找不到任何东西。

谢谢你。

4

2 回答 2

0

只需使用相对布局而不是绝对布局。如果你不喜欢相对布局,你可以使用绝对布局,它没有什么问题,只是在大多数情况下不实用。您可以使用绝对布局并通过以下方式缩放屏幕上的视图:Scale a view and its layered subviews relative

Dianne Hackborn(在谷歌工作)说

我再说一遍:我们不会从未来的版本中删除 AbsoluteLayout,但我们强烈劝阻人们不要使用它。

如果你选择不相信我,欢迎你,但我不对你做出这个决定负责。

这是覆盖按钮的方法:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/image" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="34dp"
        android:layout_marginRight="40dp"
        android:text="Button" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/button2"
        android:layout_below="@+id/button1"
        android:layout_marginRight="37dp"
        android:layout_marginTop="108dp"
        android:text="Button" />

</RelativeLayout>
于 2013-04-19T10:34:17.350 回答
0

我建议您不要在布局中使用绝对位置。如果可以将按钮放在正确的位置,请使用容器和一些边距。

如果您确实需要取决于设备的绝对位置,则可以为每种分辨率使用特定尺寸。看这里:

http://developer.android.com/training/basics/supporting-devices/screens.html

于 2013-04-19T10:26:16.043 回答