2010-12-13 12 views
28

Come aggiungere una linea bianca orizzontale 1px sopra la vista immagine in un layout relativo?Come aggiungere una linea orizzontale 1px sopra la vista immagine in un layout relativo?

<RelativeLayout 
android:id="@+id/widget38" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_x="108px" 
android:layout_y="87px" 
> 
<ImageView 
android:id="@+id/widget39" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentTop="true" 
android:layout_alignParentRight="true" 
> 
</ImageView> 
</RelativeLayout> 

risposta

88

Basta aggiungere la seguente riga nel codice XML dove lo desideri.

<View android:background="#ffffff" 
     android:layout_width = "match_parent" 
     android:layout_height="1dp"/> 

Edit: Prova questo:

<RelativeLayout 
android:id="@+id/widget38" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_x="108px" 
android:layout_y="87px" 
> 
<View android:id="@+id/separator" 
android:background="#ffffff" 
android:layout_width = "fill_parent" 
android:layout_height="1dip" 
android:layout_centerVertical ="true" 
android:layout_alignParentTop="true"/> 
<ImageView 
android:id="@+id/widget39" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_below="@id/separator" 
android:layout_alignParentRight="true" 
/> 
</RelativeLayout> 
+0

Ho aggiunto questo e funziona benissimo, grazie! Tranne Android: layout_above = "@ id/your_image_view_id" non funziona, mi dà costantemente un errore. Quindi ho dovuto rimuovere questo attributo, ma la linea è appesa da qualche parte nel mezzo del layout relativo. – dropsOfJupiter

+0

ha modificato la mia risposta – blindstuff

+0

grazie :) lavora – dropsOfJupiter

9

prevedere il passaggio del layout per la linea in un file separato:

<!-- horizontal_line.xml --> 
<?xml version="1.0" encoding="utf-8"?> 
<View 
    style="@style/HorizontalLine" /> 

... fa riferimento a una definizione di stile personalizzato:

<!-- styles.xml --> 
<style name="HorizontalLine"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">@dimen/horizontal_line_height</item> 
    <item name="android:background">@color/horizontal_line_fill_color</item> 
    <item name="android:layout_marginTop">@dimen/large_spacer</item> 
    <item name="android:layout_marginBottom">@dimen/large_spacer</item> 
</style> 

... e quindi è possibile include nel tuo layout:

<RelativeLayout 
    android:id="@+id/widget38" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_x="108px" 
    android:layout_y="87px" > 

    <include 
     android:id="@+id/horizontal_line" 
     layout="@layout/horizontal_line" /> 

    <ImageView 
     android:id="@+id/widget39" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/horizontal_line" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentRight="true" /> 

</RelativeLayout> 
+6

Mi piace questo approccio poiché riduce la duplicazione e pulisce i file di layout (+1). Tuttavia, salterò il '', e useremo '' direttamente negli XML di layout. Più semplice e funziona allo stesso modo. – Jonik