2016-04-26 16 views
0

Ich habe 2 Layouts in meinem Xml, eine CircularImageView und eine ImageView, und die ImageView muss oben auf der CircularImageView angezeigt werden.ImageView Overlay funktioniert nicht

Ich habe versucht:

<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> 

Und es abgeschnitten wird immer: enter image description here

ich das Bild muß genau in dem Bild an dieser Position angezeigt werden, aber nicht „abgeschnitten“, Was fehlt mir hier?

BTW, diese Komponente ist Teil einer RecyclerView-Zeile.

EDIT --- Ich vergaß zu erwähnen, das Bild ist nur ein Platzhalter, um den Avatar zu zeigen, aber das Bild ist dinamely bevölkert!

Vielen Dank!

+0

Das Problem hier ist die negativen Ränder –

+0

Sie könnten die zweite Bildansicht in der Mitte der Eltern (horizontal) und verwenden Sie positive Ränder, um es wo Sie wollen, anstatt es rechts von der anderen Ansicht setzen und negative verwenden Ränder ... es scheint, als ob Sie die Ansicht auf die Oberseite des Elternteils ausgerichtet halten können, so dass Sie das allein lassen können – kimchibooty

Antwort

1

Das Padding (16dp), das Sie auf das erste relativeLayout anwenden, lässt Sie glauben, dass es mehr Platz gibt und dass Sie das imageView nach oben verschieben können. Tatsächlich ist der Rand wie eine Lücke, er erweitert Ihr Layout nicht.

Dies ist die Lösung, die ich vorschlagen, eine FrameLayout mit

<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> 

EDIT: Sie keine frameLayout verwenden müssen, können Sie eine relativeLayout verwenden, wenn Sie unterschiedliche Ränder festlegen möchten. Der Punkt hier ist wirklich, um Ihr enthaltenes Layout größer zu machen, so dass Sie die imageview easily platzieren können.

+0

Das hat funktioniert, vielen Dank! – Leonardo

0

Wenn Sie möchten, dass ein Bild über einem anderen liegt, warum verwenden Sie android:layout_toRightOf?
Entfernen Sie es und das zweite Bild sollte das erste Bild abdecken.

Sie können auch versuchen, Ränder bei Zweitbild zu entfernen und centerInParent, centerVertically oder centerHorizontally verwenden.

Oder vielleicht habe ich nicht das ganze Problem) dann pls bieten mehr Details. Vielen Dank.

0

Haben Sie versucht, einen Bildeditor wie Paint/Photoshop zu verwenden und die beiden Bilder zusammenzuführen? Dann können Sie nur ein Bild in Ihrer Ansicht anzeigen.

0

versuchen Sie es mit einem linearen Layout mit der Ausrichtung auf vertikal eingestellt.

Verwandte Themen