Comment puis-je créer une frontière autour D'une LinearLayout Android?

j'ai une grande disposition, et une plus petite à l'intérieur de lui.

comment créer une bordure de ligne autour de la petite mise en page?

74
demandé sur Michael Petrotta 2013-02-27 15:50:26

7 réponses

bien sûr. Vous pouvez ajouter une bordure à n'importe quelle forme que vous voulez. Fondamentalement, vous devez créer un dessinable personnalisé et l'ajouter comme un arrière-plan à votre mise en page. exemple:

créez un fichier appelé customborder.xml dans votre dossier étirable:

<?xml version="1.0" encoding="UTF-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
   <corners android:radius="20dp"/> 
   <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
   <stroke android:width="1dp" android:color="#CCCCCC"/>
 </shape>

appliquez-le comme arrière-plan à votre mise en page plus petite:

<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/customborder">

ça devrait faire l'affaire.

Voir aussi:

168
répondu Anup Cowkur 2017-10-05 08:55:57

Creat XML appelé frontière.

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item> 
    <shape android:shape="rectangle">
      <solid android:color="#FF0000" /> 
    </shape>
  </item>   
    <item android:left="5dp" android:right="5dp"  android:top="5dp" >  
     <shape android:shape="rectangle"> 
      <solid android:color="#000000" />
    </shape>
   </item>    
 </layer-list>

ajouter ensuite ceci à la disposition linéaire comme backgound comme ceci:

     android:background="@drawable/border"
19
répondu KDeogharkar 2013-02-27 11:56:54

essayez ceci:

par exemple, définissons res/drawable/my_custom_background.xml comme:

(créez cette mise en page dans votre dossier dessinable) layout_border.xml

  <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <stroke android:width="2dp" android:height="2dp"
                android:color="#FF0000" />
            <solid android:color="#000000" />
            <padding android:left="1dp" android:top="1dp" android:right="1dp"
                android:bottom="1dp" />

            <corners android:radius="1dp" android:bottomRightRadius="5dp"
                android:bottomLeftRadius="0dp" android:topLeftRadius="5dp"
                android:topRightRadius="0dp" />
        </shape>
    </item>

</layer-list>

principal.xml

<LinearLayout 
    android:layout_gravity="center"
    android:layout_width="200dp" 
    android:layout_height="200dp"   
    android:background="@drawable/layout_border" />
</LinearLayout>
9
répondu Android_coder 2013-02-27 12:00:09

créer un fichier xml unique dans le dossier dessinable

<stroke
    android:width="2dp"
    android:color="#B40404" />

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

<corners android:radius="4dp" />

appelez maintenant ce xml à votre petit fond de mise en page

android: background= "@drawable/yourxml"

9
répondu Vani 2013-02-28 06:38:10

cette solution ne fera qu'ajouter la bordure, le corps du dérouleur de ligne sera transparent.

tout D'abord, créer cette bordure à tirer dans le dossier à tirer, border.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android= "http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke android:width="2dp" android:color="#ec0606"/>
    <corners android:radius="10dp"/>
</shape>

ensuite, dans votre vue en ligne, ajoutez la bordure.xml comme le fond comme ceci

<LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/border">
4
répondu s-hunter 2016-03-24 15:18:48

je vais ajouter lien Docs Android à d'autres réponses.

https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

décrit tous les attributs de la forme dessinable et stroke parmi eux pour définir la frontière.

exemple:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <stroke android:width="1dp" android:color="#F00"/>
  <solid android:color="#0000"/>
</shape>

bordure rouge avec fond transparent.

2
répondu mortalis 2018-01-14 14:33:35

vous pouvez le faire de façon Pragmatique aussi

  GradientDrawable gradientDrawable=new GradientDrawable();
   gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));

définit alors le fond de layout comme:

LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
1
répondu Vikram singh 2017-10-30 05:47:09