重叠图像上的按钮

时间:2017-05-31 05:56:57

标签: android android-layout android-relativelayout

我想在图像上重叠10个按钮。我使用RelativeLayout来做同样的事情,但结果,按钮的位置在不同的设备中发生变化。那么,有人可以告诉我一个解决方法吗?这是此活动的xml文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/exercise1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="5dp"
tools:context="nmss.example.com.coach.Exercise1">

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:src="@drawable/humanbody"
    android:layout_marginStart="20dp"/>

<Button
    android:id="@+id/btn_neck"
    android:layout_width="wrap_content"
    android:layout_height="35dp"
    android:layout_marginStart="145dp"
    android:layout_marginTop="62dp"
    android:text="Neck"
    android:textSize="12sp" />

<Button
    android:id="@+id/btn_shoulder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="35dp"
    android:layout_marginTop="75dp"
    android:text="Shoulder"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_biceps"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="25dp"
    android:layout_marginTop="135dp"
    android:text="Biceps"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_forearm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="3dp"
    android:layout_marginTop="195dp"
    android:text="Forearm"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_quads"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="68dp"
    android:layout_marginTop="315dp"
    android:text="Quads"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_chest"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="145dp"
    android:layout_marginTop="100dp"
    android:text="Chest"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_abs"
    android:layout_width="65dp"
    android:layout_height="wrap_content"
    android:layout_marginStart="150dp"
    android:layout_marginTop="160dp"
    android:text="Abs"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_triceps"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="246dp"
    android:layout_marginTop="125dp"
    android:text="Triceps"
    android:textSize="12sp" />

<Button
    android:id="@+id/btn_mid_back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="215dp"
    android:layout_marginTop="175dp"
    android:text="Middle back"
    android:textSize="12sp"/>

<Button
    android:id="@+id/btn_calves"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="210dp"
    android:layout_marginTop="400dp"
    android:text="Calves"
    android:textSize="12sp"/>

</RelativeLayout>

This is the view in Android Studio

2 个答案:

答案 0 :(得分:0)

永远不要硬编码这样的大小,25dp, 将此链接添加到您的依赖项,以获取每个屏幕的维度。

 compile 'com.intuit.sdp:sdp-android:1.0.4'

它的用途是这样的,

  android:layout_marginTop="@dimen/_110sdp"

写完后,@ dimen / ... Ctrl + Space,你可以看到尺寸从1dp到600dp的值。试试吧,非常有用。

答案 1 :(得分:0)

只需使用LinearLayout代替RelativeLayout。 尝试使用百分比在顶部,底部,右侧和左侧排列图像按钮。 您还需要在 res文件夹中为所有设备创建不同的布局文件夹,并相应地使用这些尺寸。