2017-05-31 10 views
3

comment créer Android drawable avec fond incurvé parfait en utilisant XML comme ceci:Comment créer un rectangle de bordure inférieure courbe dans Android?

enter image description here

j'ai essayé xml, mais le résultat n'a pas parfait

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#5f9c63"/> 

    <padding android:left="1dp" 
     android:top="1dp" 
     android:right="1dp" 
     android:bottom="1dp" /> 

    <corners android:bottomRightRadius="100dp" 
     android:bottomLeftRadius="100dp" 
     android:topLeftRadius="0dp" 
     android:topRightRadius="0dp"/> 
</shape> 

Toute idée?

Merci

+0

Salut pouvez-vous obtenir une image de votre forme attendue – Sheychan

+0

Salut @Sheychan cette photo de la forme que je m'attendais. https://i.stack.imgur.com/UMvDq.png –

Répondre

1

Je pense que vous cherchez quelque chose comme ceci: -

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="48dp" 
     android:height="48dp" 
     android:viewportHeight="12" 
     android:viewportWidth="12"> 

    <path 
     android:fillColor="@android:color/holo_red_light" 
     android:pathData="M 2,9 C 2,9 4,10 6,10 C 8,10 10,9 10,9 L 10,0 2,0 2,8" 
     android:strokeWidth="0.1"/> 

</vector> 

enter image description here

Utilisez le dernier vecteur Android drawable qui vous donne plus de puissance dans le dessin et un meilleur résultat. Vous pouvez gérer le dessin pixel par pixel.

Permettez-moi joindre plusieurs options afin que vous pouvez obtenir l'image claire que de petits changements peuvent faire dans le vecteur drawable

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="48dp" 
     android:height="48dp" 
     android:viewportHeight="12" 
     android:viewportWidth="12"> 

    <path 
     android:fillColor="@android:color/holo_red_light" 
     android:pathData="M 2,9 C 2,9.5 4,10 6,10 C 8,10 10,9.5 10,9 L 10,0 2,0 2,8" 
     android:strokeWidth="0.1"/> 

</vector> 

enter image description here

Dans cette deuxième image, vous pouvez voir la courbe est plus arrondie en changeant la peu de valeur. Si vous voulez vraiment apprendre au sujet de dessinable de vecteur s'il vous plaît se référer here, il vous fournira une grande expérience de travailler avec le vecteur drawable.

+0

yeeyy, ses œuvres pour moi. impressionnant. Merci beaucoup. tu sauves ma journée. :) @avi –

+0

@avi Cela fonctionne, mais je dois définir la largeur de cette forme pour correspondre à parent. Comment je fais ça? –

+0

Souhaitez-vous retirer le rembourrage de la gauche ou de la droite? – Avi

0

Modifier vos coins à cette:

<corners 
    android:radius="200dp" 
    android:topLeftRadius="0dp" 
    android:topRightRadius="0dp" 
    /> 

Il sera parfaitement arrondi, peut-être pas le niveau que vous voulez.

+0

juste essayé 'android: rayon =" 200dp "'. mais n'a pas encore parfait que je m'attendais, comme https://i.stack.imgur.com/UMvDq.png. Merci pour l'idée. :) –