web-dev-qa-db-fra.com

La forme en demi-cercle ne fonctionne pas

J'essaie de créer un arrière-plan en demi-cercle, cela fonctionne dans development IDE preview, mais cela ne fonctionne pas lorsque je lance l'émulateur.

 enter image description here

Voici mon code de forme: 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:height="50dp">
        <shape>
            <solid Android:color="@color/colorAccentDark" />
        </shape>
    </item>
    <item Android:top="-500dp" Android:bottom="0dp" Android:left="-100dp" Android:right="-100dp">
        <shape>
            <corners Android:radius="500dp" />
            <solid Android:color="@color/colorAccentDark" />
        </shape>
    </item>
</layer-list>

Et voici mon code de mise en page:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical">

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:background="@drawable/background_profile"
        Android:layout_weight="1">

        <de.hdodenhof.circleimageview.CircleImageView
            Android:id="@+id/profile_avatar"
            Android:layout_width="100dp"
            Android:layout_height="100dp"
            Android:src="@drawable/ic_default_avatar"
            Android:layout_centerHorizontal="true"
            Android:layout_marginTop="50dp"/>

        <TextView
            Android:id="@+id/profile_name"
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_centerHorizontal="true"
            Android:layout_below="@id/profile_avatar"
            Android:layout_marginTop="20dp"
            Android:textColor="@color/neutralWhite"
            Android:textStyle="bold"
            Android:textSize="18sp"
            Android:text="Avatar Ang"/>

    </RelativeLayout>

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:layout_weight="4.04">

        <TextView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:text="Hello Android!"/>

    </RelativeLayout>

</LinearLayout>

Peut-être un autre Tweak pour gérer ça? Merci

21
fanjavaid

Vous ne pouvez pas créer un demi-cercle à partir de xml. mais vous pouvez réaliser ce que vous recherchez en utilisant un cercle avec une marge et un rembourrage appropriés.

Vous pouvez utiliser un fichier .xml de forme circulaire . Créez un cercle de taille fixe comme ceci:

Exemple: 

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
       Android:shape="oval"
       Android:useLevel="false" >
   <solid Android:color="#006AC5" />
   <size
    Android:height="50dp"
    Android:width="50dp" />
</shape>

 enter image description here

19
Maveňツ

vous pouvez essayer ceci:

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <solid Android:color="#900021df"/>
    <size
        Android:width="10dp"
        Android:height="5dp"/>
    <corners
        Android:bottomLeftRadius="20dp"
        Android:bottomRightRadius="20dp"/>
</shape>

cela donne cette forme:

 

39
Salim Lachdhaf

curve_toolbar_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
        <shape Android:shape="rectangle"/>
    </item>
    <item
        Android:bottom="0dp"
        Android:left="-100dp"
        Android:right="-100dp"
        Android:top="-80dp">
        <shape Android:shape="oval">
            <solid Android:color="@color/colorPrimary" />
        </shape>
    </item>
</layer-list>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:id="@+id/container"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    <Android.support.v7.widget.Toolbar
        Android:id="@+id/toolbar"
        Android:layout_width="0dp"
        Android:layout_height="?android:attr/actionBarSize"
        Android:background="@drawable/rounded_corner"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0">

    </Android.support.v7.widget.Toolbar>
</Android.support.constraint.ConstraintLayout>

 Curve shape toolbar

31
Sai Kiran

Essaye ça. Supprimez la partie en dégradé, elle se présentera comme vous le souhaitez.

<item>
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:shape="rectangle">
        <solid Android:color="#00B0EA" />

    </shape>
</item>
<item
    Android:bottom="400dp"
    Android:left="-100dp"
    Android:right="-100dp"
    Android:top="-200dp">
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:shape="oval">
        <gradient
            Android:angle="90"
            Android:endColor="#65FFFFFF"
            Android:startColor="#65FFFFFF" />
    </shape>
</item>
<item
    Android:bottom="402dp"
    Android:left="-100dp"

    Android:right="-100dp"
    Android:top="-280dp">
    <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:shape="oval">
        <solid Android:color="#FFFFFF" />
    </shape>
</item>

 enter image description here

7
devajay

Backgournd.xml


<?xml version="1.0" encoding="utf-8"?>
<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">
            <solid Android:color="#FFFFFF" />
        </shape>
    </item>
    <item
        Android:bottom="410dp"
        Android:left="-100dp"
        Android:right="-100dp"
        Android:top="-300dp">
        <shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:shape="oval">

            <solid Android:color="#7181A1" />
        </shape>
    </item>
</layer-list>

Output like

 enter image description here

0
Ashvin solanki