2016-04-05 16 views
1

So habe ich es geschafft, eine Form (Rechteck) mit nur einer Seite zu erstellen. Jetzt möchte ich, dass auf der einen Seite der Rand rechts und der Rand links ist. Im Moment sieht es wie folgt aus:Android Zeichnungslinien mit Rand

Right now it looks like this:

und das ist, wie es aussehen soll (habe nichts dagegen, Farben):

enter image description here

Jetzt habe ich einen Code für die Zeile:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:left="-55dp" 
    android:right="-55dp" 
    android:top="-55dp"> 
    <shape android:shape="rectangle" > 
     <solid android:color="@android:color/transparent" /> 

     <stroke 
      android:width="5dp" 
      android:color="@color/text" /> 
    </shape> 
</item> 

Wie erreicht man das?

Layout für die Textansichten.

<LinearLayout 
     android:id="@+id/picture_activity_linear" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="@dimen/layout_margin" 
     android:layout_marginLeft="@dimen/layout_margin" 
     android:layout_marginRight="@dimen/layout_margin" 
     android:background="@color/background" 
     android:orientation="vertical" 
     android:visibility="visible"> 


     <TextView 
      android:id="@+id/picture_activity_take_new" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/shape_text_line" 
      android:drawableStart="@drawable/ic_profilepicture_takephoto" 
      android:gravity="center" 
      android:padding="@dimen/layout_padding" 
      android:text="Take a new picture" 
      android:textColor="@color/text" 
      android:textSize="@dimen/large_text_size"/> 

     <TextView 
      android:id="@+id/picture_activity_select_from_gallery" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:drawableStart="@drawable/ic_profilepicture_addphoto" 
      android:gravity="center" 
      android:padding="@dimen/layout_padding" 
      android:text="Select new from gallery" 
      android:textColor="@color/text" 
      android:textSize="@dimen/large_text_size"/> 


     <TextView 
      android:id="@+id/picture_activity_remove_photo" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:drawableStart="@drawable/ic_profilepicture_delete" 
      android:gravity="center" 
      android:padding="@dimen/layout_padding" 
      android:text="Remove photo" 
      android:textColor="@color/text" 
      android:textSize="@dimen/large_text_size"/> 


    </LinearLayout> 
+0

warum Form hier erforderlich ist? –

+0

machen Sie eine Ansicht mit Höhe = 1dp, 2dp was auch immer Sie wollen –

Antwort

1

Ich denke, Sie verwenden eine Recyclerview. Für eine Recycler-Ansicht benötigen Sie ein einzelnes Zeilenlayout.

<LinearLayout> 
    height, width, id 

    <TextView> 
     width = "match_parent" 
     height, id 

    <LinearLayout> 
     android:id="@+id/line" 
     android:height="2dp" 
     android:width="match_parent" 
     android:layout_marginLeft="whatever_you_need" 
     android:layout_marginRight="whatever_you_need" 
     android:background="some_color" /> 

</LinearLayout> 

Also hier, nicht wahr manuell jedes Mal die Zeile müssen Es ist ein Problem, das heißt die Linie unten Ihre letzte Reihe kommen. Ich glaube, Sie möchten es entfernen.

Im Adapter

String[] itemList = {"Take a new Picture", "Select from Gallery",...}; 

In Ihrer viewholder Klasse im recyclerview Adapter:

line = (LinearLayout) itemView.findViewById(R.id.line); 

In Ihrem onBindViewHolder für den recyclerview. Hier identifizieren wir die letzte Zeile und blenden dann die Unterstreichung aus.

if(position == itemList.length - 1){ //position starts from 0 
    holder.line.setVisibility(View.GONE); 
} 

Jetzt wird so aussehen, wie Sie

wünschen
+0

Ich bin nicht, das sind hardcoded Elemente. –

+0

Recyclerview würde Ihnen besser dienen, da es flexibel ist und alle + mehr Funktionalität hat ... Wenn Sie es immer noch hardcoded machen wollen, dann hält der lineare Layout-Teil der Lösung immer noch, wiederholen Sie es einfach so oft Sie wollen – suku

Verwandte Themen