2017-03-23 5 views
0

Ich habe eine Layer-Liste, mit einem Oval am Anfang, einer Linie in der Mitte und einem Rechteck am Ende; Stand oval und Rechteck haben 8dpx8dp und die Linie, die ich habe versucht wordenLayer-Listenmittelpunkt erreicht keine volle Höhe

<?xml version="1.0" encoding="utf-8"?> 
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item 
      android:gravity="top" 
      android:bottom="40dp" 
      android:top="0dp"> 
      <shape android:shape="oval"> 
       <solid android:color="@color/colorAccent" /> 
       <size android:width="8dp" android:height="8dp" 
        /> 
      </shape> 
     </item> 
     <item 
      android:top="0dp" 
      android:bottom="0dp" 
      > 
     <rotate 
      android:fromDegrees="90" 
      android:toDegrees="90"> 
      <shape 
       android:shape="line"> 
       <stroke 
        android:width="1dp" 
        android:color="#ff00ff" 
        android:dashWidth="1dp" 
        android:dashGap="2dp" 
        /> 
       <size android:width="8dp" 
        /> 
      </shape> 
     </rotate> 
     </item> 
     <item 
      android:gravity="bottom" 
      android:top="40dp" 
      android:bottom="0dp"> 
      <shape android:shape="rectangle"> 
       <solid android:color="@color/colorAccent" /> 
       <size android:width="8dp" android:height="8dp" 
        /> 
      </shape> 
     </item> 

</layer-list> 

keine Höhe oder 32DP der Höhe x Breite 8DP Verwendung Dies ist der Imageview, wo ich bin es angezeigt wird.

<ImageView 
        android:layout_width="8dp" 
        android:layout_height="@dimen/image_large" 
        android:src="@drawable/place_selector_left_image" 
        android:layout_gravity="center_vertical" 
        /> 

aber es funktioniert nicht wie erwartet die Linie nicht die volle Höhe, die ich zugewiesen habe.

enter image description here

Antwort

0

Es scheint, dass, wenn ich die Linie erstellt horizontal ist, so dass es nur die Breite des Behälters annehmen kann, und wenn ich es gedreht war es nicht‘die Höhe Ich wollte, habe ich nach links und rechts versetzt der Gegenstand. Dies ist mein endgültiger Code.

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:bottom="40dp" 
     android:top="0dp"> 
     <shape android:shape="oval"> 
      <solid android:color="@color/colorAccent" /> 
      <size 
       android:width="8dp" 
       android:height="8dp" /> 
     </shape> 
    </item> 
    <item 
     android:bottom="8dp" 
     android:top="8dp" 
     android:right="-32dp" 
     android:left="-32dp"> 
     <rotate xmlns:android="http://schemas.android.com/apk/res/android" 
      android:fromDegrees="90" 
      android:toDegrees="90"> 
      <shape 
       android:shape="line"> 
       <stroke 
        android:width="1dp" 
        android:color="#ff00ff" 
        android:dashWidth="1dp" 
        android:dashGap="2dp" /> 
       <size android:width="8dp" 
        android:height="32dp" 
        /> 
      </shape> 
     </rotate> 
    </item> 

    <item 
     android:bottom="0dp" 
     android:top="40dp"> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/colorAccent" /> 
      <size 
       android:width="8dp" 
       android:height="8dp" /> 
     </shape> 
    </item> 
</layer-list>