2017-05-31 143 views
-3

我想重疊圖像上的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

+0

從不硬編碼這樣的尺寸,25dp, 將此鏈接添加到您的依賴項,以獲取每個屏幕的尺寸。 – Shekhar

+0

您可以使用用戶禁忌佈局: - > https://developer.android.com/reference/android/support/constraint/ConstraintLayout.html –

回答

0

只需使用LinearLayout而不是RelativeLayout。 嘗試使用百分比在頂部,底部,右側和左側排列圖像按鈕。 您還需要在所有設備的res文件夾中創建不同的佈局文件夾,並相應地使用尺寸。

0

決不要硬編碼的大小這樣,25dp, 添加此鏈接到你的依賴,讓每一個屏幕尺寸。

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

其用途是這樣的,

android:layout_marginTop="@dimen/_110sdp" 

後寫作,@dimen/... Ctrl +空格鍵,你可以看到從1DP尺寸爲600 dp的價值。試試吧,它非常有用。