2016-05-06 2 views
4

я пытаюсь сделать экран, желательно с XML только, чтобы выглядеть следующим образом: enter image description hereAndroid макет: место вид между двумя видами

Я последовал this approach,, но с использованием FrameLayout я только имею возможность позиционировать «оранжевый» вид с использованием layout_gravity, и, как я пытаюсь объяснить на изображении, я не знаю высоту макетов, потому что оба измеряют с помощью layout_weight.

Моя раскладка:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="onit.radiolisten.MainActivity"> 

    <FrameLayout 
     android:id="@+id/layout_container_activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <!-- TOP LAYOUT, THE GREEN ONE ON THE IMAGE --> 
      <LinearLayout 
       android:id="@+id/layout_top_activity_main" 
       android:layout_width="match_parent" 
       android:layout_height="0dip" 
       android:layout_weight="2" 
       android:background="@color/colorPrimary" 
       android:orientation="vertical"></LinearLayout> 

      <!-- BOTTOM LAYOUT, THE BLUE ONE ON THE IMAGE --> 
      <RelativeLayout 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1" 
       android:background="#e6e6e6"> 

      </RelativeLayout> 
     </LinearLayout> 

     <!-- THIS IS THE IMAGE I WANT TO POSITION --> 
     <ImageView 
      android:id="@+id/btn_play_radio" 
      android:layout_width="120dp" 
      android:layout_height="120dp" 
      android:layout_gravity="center" 
      android:src="@drawable/play_icon" /> 
    </FrameLayout> 

</LinearLayout> 

Может ли это быть сделано только с XML?

+2

Следуйте по этой ссылке [] (http://stackoverflow.com/questions/30244020/view-centered-above-in-between-weight-distributed-views-in-linear-layout). Я думаю, что это то, что вам нужно – Masum

+0

Следуйте другим [link] (http://stackoverflow.com/questions/26578418/android-place-an-image-view-between-two-views). Надеюсь, это поможет вам – Masum

+0

Спасибо @Masum, я решил следовать подходу по первой ссылке! – RominaV

ответ

4
<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
<--main layout-->  
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 
<--top layout--> 
    <LinearLayout  
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_marginTop="20dp" 
     android:layout_weight="0.4" 
     android:gravity="bottom|center"/> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="0.1" 
     android:background="@color/callingscreen_color" 
     android:gravity="center|top" />  
    </LinearLayout> 
<--layout for img--> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1.5" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="0.5" 
      android:gravity="center|top"> 
<--IMage u want to put--> 
      <ImageView 
       android:id="@+id/ivimg" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/img"/> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 
+0

это работает довольно хорошо для полноэкранных экранов, но если используется для диалога, он занимает всю высоту экрана. – vanomart

+1

Ну, я бы просто сказал, что «Quite Creative» хорошо работает! Хотя мне не нужен такой же дизайн, но похожий. И было хорошо, чтобы я начал и добился этого! Ницца! Но это работает только в том случае, если экран статичен, а не: * Диалог * Вид с прокручиваемым контентом. – sud007

+0

Абсолютно для статических полноразмерных экранов. Работает для меня, Надежда для других тоже. – Nikhil

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