具有所有屏幕分辨率的图像上的按钮位置相同

时间:2013-04-19 10:23:44

标签: android

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

我在网上寻找答案,但找不到任何答案。

谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

只需使用relative layout代替absolute layout。如果你不喜欢相对布局,你可以使用绝对布局,它没有任何问题,它在大多数情况下都不实用。您可以使用绝对布局并使用以下内容缩放屏幕上的视图:Scale a view and its layered subviews relatively

Dianne Hackborn (works at google) says

  

我再说一遍:我们不打算从未来版本中删除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>