2015-07-29 4 views
1

enter image description hereКак разместить ImageButton над ImageView в RelativeLayout

Я хотел бы сделать это в моем RelativeLayout с двумя ImageButtons и в ImageView. Можно ли это сделать без использования marginTop? Любые ответы приветствуются. Мой код XML:

 <ImageView 
     android:id="@+id/imageview" 
     android:layout_width="match_parent" 
     android:layout_height="150dp" 
     android:scaleType="fitXY" 
     android:layout_alignParentBottom = "true" 
     android:src="@drawable/image1"/> 

    <ImageButton 
     android:id="@+id/imagebutton1" 
     android:layout_width="70dp" 
     android:layout_height="50dp" 
     android:scaleType="fitXY" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentBottom = "true" 
     android:background="@drawable/image2"/> 

     <ImageButton 
     android:id="@+id/imagebutton2" 
     android:layout_width="70dp" 
     android:layout_height="50dp" 
     android:scaleType="fitXY" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom = "true" 
     android:background="@drawable/image3"/> 

ответ

2

RelativeLayouts - это почти всегда правильный макет, они очень мощные. В вашем случае, вы можете просто использовать «андроида: layout_centerVertical =„истинный“», но избавиться от «» layout_alignParentBottom

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="150dp"> 
    <ImageView 
      android:id="@+id/imageview" 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      android:scaleType="fitXY" 
      android:layout_alignParentBottom = "true" 
      android:src="@drawable/image1"/> 

    <ImageButton 
      android:id="@+id/imagebutton1" 
      android:layout_width="70dp" 
      android:layout_height="50dp" 
      android:scaleType="fitXY" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/image2"/> 

    <ImageButton 
      android:id="@+id/imagebutton2" 
      android:layout_width="70dp" 
      android:layout_height="50dp" 
      android:scaleType="fitXY" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:background="@drawable/image3"/> 
</RelativeLayout> 

В моем личном опыте: если вы сомневаетесь, используйте RelativeLayout.

+0

Спасибо за ваш ответ, это отлично работает! –

0

Если я получу ваш ответ правильно, вы можете сделать это в коде. После того как все виды назначены (findViewById(...) вызовов) добавить строку ниже в код:

mMyImageButton.bringToFront(); 

Надеется, что это помогает!

1

В этом случае я бы предложил использовать FrameLayout. В FrameLayout z-индекс определяется порядком, в котором элементы добавляются. Таким образом, ваш последний элемент внутри FrameLayout должен быть ImageButton, так что он будет нарисован поверх ImageView.

Смежные вопросы