web-dev-qa-db-fra.com

Disposition linéaire personnalisée avec côté incurvé en android

J'essaie de créer une disposition linéaire personnalisée comme ci-dessous

enter image description here

J'essaie de ne courber qu'un seul côté. Essayé avec un rayon de coin mais il ne donne pas le même aspect que ci-dessus.

J'ai déjà essayé cette forme de fond comme ci-dessous: -

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <solid Android:color="#3F51B5" />

    <padding
        Android:bottom="7dp"
        Android:left="7dp"
        Android:right="7dp"
        Android:top="7dp" />

    <corners
        Android:bottomLeftRadius="50dp"
        Android:bottomRightRadius="50dp"
        Android:topLeftRadius="0dp"
        Android:topRightRadius="0dp" />
</shape>

il arrondit uniquement les coins et en augmentant la valeur, la forme n'est pas conservée, elle devient trop circulaire. JE VEUX une ligne COURBE et des coins non arrondis

16
Sumeet Darade

C'est déjà très tard, mais c'est pour les futurs chercheurs. Je pense que vector drawables sont la solution la plus parfaite pour cela. Utilisez le vecteur ci-dessous comme arrière-plan pour obtenir une disposition incurvée inférieure de forme personnalisée.

<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:width="24dp"
Android:height="24dp"
Android:viewportHeight="100.0"
Android:viewportWidth="200.0">
<path
    Android:fillColor="#YOUR_FAVORITE_COLOR"
    Android:pathData="M200,0H0v4.5h0v75.8h0c17.8,10.2 56,17.2 100.5,17.2c44.5,0 81.6,-7 99.5,-17.2h0V4.5h0V0z" />
8
Alex Chengalan

Créez un fichier de forme dans un dossier dessinable, par exemple: my_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
   <corners
      Android:bottomLeftRadius="100dp"
      Android:bottomRightRadius="100dp"
      Android:topLeftRadius="0dp"
      Android:topRightRadius="0dp" />
   <padding
      Android:bottom="0dp"
      Android:left="0dp"
      Android:right="0dp"
      Android:top="0dp" />
   <stroke
      Android:width="0.5dp"
      Android:color="@color/theme_red" />
  <solid Android:color="@color/white" />
</shape> 

puis ajoutez cette forme dans votre mise en page en arrière-plan. par exemple:

<LinearLayout
     Android:layout_width="wrap_content"
     Android:layout_height="wrap_content"
     Android:background="@drawable/my_shape"
     Android:orientation="horizontal">             
</LinearLayout>
7
Masum

ce que j'ai fait est de créer un _ allowaccess_button_normal.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <item>
        <shape Android:shape="oval">
            <solid Android:color="@color/colorPrimary"/>
        </shape>
    </item>

</selector>

Essayez la disposition ci-dessous

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:background="#fefefe"
    Android:layout_height="match_parent">

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:background="@color/colorPrimary"
        Android:layout_height="110dp">
    </RelativeLayout>

    <ImageView
        Android:layout_marginTop="85dp"
        Android:src="@drawable/allowaccess_button_normal"
        Android:layout_width="match_parent"
        Android:layout_height="50dp" />


</RelativeLayout>

enter image description here

5
Rissmon Suresh
 <layer-lisxmlns:Android="http://schemas.Android.com/apk/res/Android">

   <item  Android:top="175dp">

    <shape Android:shape="oval">

     <gradient
        Android:angle="135"
        Android:startColor="#f56f2c"
        Android:endColor="#fa9f46"/>

   </shape>
  </item>


  <item Android:bottom="40dp">

   <shape Android:shape="rectangle">

    <gradient
        Android:angle="135"
        Android:startColor="#f56f2c"
        Android:endColor="#fa9f46"/>

   </shape>
 </item>
</layer-list>
1
SAHOOD SSA
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">

<item>
    <shape Android:shape="rectangle">

    </shape>
</item>

<item
    Android:bottom="0dp"
    Android:left="-100dp"
    Android:right="-100dp"
    Android:top="-80dp">
    <shape Android:shape="oval">
        <solid Android:color="@color/colorAccent">

        </solid>
    </shape>
</item>
<LinearLayout
        Android:layout_width="match_parent"
        Android:layout_height="200dp"
        Android:background="@drawable/shape_curve"
        Android:orientation="horizontal"/>
0
Meysam Keshvari

vous pouvez définir la dimension dans la valeur -dimension.xml fime, puis la définir dans votre xml de votre mise en page linéaire, elle donnera ce qui suit comme ceci

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:shape="rectangle">
<solid
   Android:color="#FFFF00" />
<padding Android:left="7dp"
    Android:top="7dp"
    Android:right="7dp"
    Android:bottom="7dp" />

créez simplement un fichier xml dans votre ensemble dessinable, le besoin de dimensio u, puis appelez-le par votre disposition linéaire

0
Neelay Srivastava