2016-04-26 65 views
0

我在xml中有2個佈局,一個CircularImageView和一個ImageView,ImageView必須出現在CircularImageView的頂部。ImageView疊加不起作用

我已經試過:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/fragment_kids_register_ll_kid" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/md_white_1000" 
    android:orientation="horizontal"> 

    <RelativeLayout 
     android:padding="16dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <com.mikhaellopez.circularimageview.CircularImageView 
      android:id="@+id/fragment_kids_row_img_kids" 
      android:layout_width="70dp" 
      android:layout_height="70dp" 
      android:src="@drawable/ic_boy" 
      /> 

     <ImageView 
      android:id="@+id/fragment_kids_row_iv_crown" 
      android:layout_toRightOf="@+id/fragment_kids_row_img_kids" 
      android:layout_marginLeft="-26dp" 
      android:layout_marginTop="-22dp" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:src="@drawable/ic_crown"/> 

    </RelativeLayout> 

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

     <TextView 
      android:id="@+id/fragment_kids_row_tv_name" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:textColor="@color/md_black_1000" 
      android:textSize="24sp" /> 

     <TextView 
      android:id="@+id/fragment_kids_row_tv_age" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:text="1 ano e 4 meses" 
      android:textColor="#808080" 
      android:textSize="12sp" /> 

    </LinearLayout> 

</LinearLayout> 

而且它被截斷: enter image description here

我所需要的圖像準確地在畫面那個位置被顯示,但不是「裁剪」,我在這裏錯過了什麼?

順便說一句,這個組件是一個RecyclerView行的一部分。

編輯--- 我忘了提及,圖像只是一個佔位符來顯示阿凡達,但圖像是dinamically填充!

謝謝!

+0

這裏的問題是負邊距 –

+0

您可以將第二個imageview放置在父級的中心(水平方向),並使用正邊距將其偏移到您想要的位置,而不是將其放在其他視圖的右側並使用負值邊緣......看起來像你可以保持視圖對齊到父母的頂部,所以你可以離開這個單獨可能 – kimchibooty

回答

1

您正在應用到第一個relativeLayout的填充(16dp)會讓您認爲有更多的位置,並且您可以向上移動imageView。實際上,保證金就像是一個缺口,它不會延伸你的佈局。

這是解決方案,我建議,使用的FrameLayout

<FrameLayout 
    android:layout_width="100dp" 
    android:layout_height="100dp"> 

     <com.mikhaellopez.circularimageview.CircularImageView 
     android:id="@+id/fragment_kids_row_img_kids" 
     android:layout_gravity = "center" 
     android:layout_width="70dp" 
     android:layout_height="70dp" 
     android:src="@drawable/ic_boy" 
     /> 

    <ImageView 
     android:id="@+id/fragment_kids_row_iv_crown" 
     android:layout_width="48dp" 
     android:layout_height="48dp" 
     android:src="@drawable/ic_crown" 
     android:layout_gravity="right|top" /> 

</FrameLayout> 

編輯:您不必使用FrameLayout裏,你可以使用RelativeLayout的,如果你想設置不同的利潤率。這裏的要點是真的讓你的包含佈局更大,所以你可以放置imageview easily

+0

這工作,非常感謝你! – Leonardo

0

如果你想要一個圖像在另一個圖像之上,爲什麼使用android:layout_toRightOf
刪除它,第二個圖像應該覆蓋第一個。

此外,您可以嘗試刪除第二張圖片的邊距,並使用centerInParent,centerVerticallycenterHorizontally

或者,也許我沒有得到所有問題),然後請提供更多的細節。謝謝。

0

您是否嘗試過使用像Paint/Photoshop這樣的圖像編輯器併合並這兩個圖像?然後你可以在你的視圖中顯示一個圖像。

0

嘗試使用方向設置爲垂直的線性佈局。