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.
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
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>
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:
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>
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>
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