create - how to use constraint layout in android



Aggiunta di uno sfondo colorato e raggio di confine a un layout (2)

Non è necessario l'elemento di riempimento separato. In realtà, non è valido. Devi solo aggiungere un blocco solid alla shape . Il stroke successivo si disegna sopra il solid :

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle">

    <corners android:radius="5dp" />
    <solid android:color="@android:color/white" />
    <stroke
        android:width="1dip"
        android:color="@color/bggrey" />
</shape>

Inoltre, non hai bisogno layer-list dei layer-list se hai una sola shape .

https://src-bin.com

Voglio creare un layout con angoli arrotondati e uno sfondo colorato pieno.

Questo è il mio layout:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="210dp"
    android:orientation="vertical"
    android:layout_marginBottom="10dp"        
    android:background="@drawable/offerItemLayout">
    <LinearLayout
        android:id="@+id/offerImageHolder"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            .
            .
            .
    </LinearLayout>
</LinearLayout>

Ho il seguente xml offerItemLayout ( offerItemLayout ) che crea i bordi correttamente:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
               android:shape="rectangle">
            <corners
                android:radius="5dp"/>
            <stroke
                android:width="1dp"
                android:color="@color/bggrey" />            
        </shape>
    </item>
    // The lines below causes an inflation failure.
    <item>
        <fill
            android:color="@color/white"/>
    </item>
</layer-list>

Ma inserendo l'articolo con un riempimento, l'inflazione del layout fallisce.

Inoltre, se assegno uno sfondo colorato al mio LinearLayout interno ( offerImageHolder ), sostituisce il primo sfondo con i miei angoli arrotondati.

Qualche idea su come farlo correttamente? : /


Answer #1

background.xml nella cartella drawable.

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
<solid android:color="#FFFFFF"/>    
<stroke android:width="3dp"
        android:color="#0FECFF" />
<gradient                           //specify graident
    android:startColor="#ffffffff" 
    android:endColor="#110000FF" 
    android:angle="90"/> 

<padding android:left="5dp"
         android:top="5dp"
         android:right="5dp"
         android:bottom="5dp"/> 
<corners android:bottomRightRadius="7dp"
         android:bottomLeftRadius="7dp" 
         android:topLeftRadius="7dp"
         android:topRightRadius="7dp"/> 
</shape>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="210dp"
android:orientation="vertical"
android:layout_marginBottom="10dp"        
android:background="@drawable/background">




android-layout