J'ai une grande mise en page et une mise en page plus petite à l'intérieur.
Comment créer une bordure de ligne autour de la petite mise en page?
Sûr. Vous pouvez ajouter une bordure à la mise en page de votre choix. Fondamentalement, vous devez créer un dessin personnalisable et l'ajouter comme arrière-plan à votre mise en page. exemple:
Créez un fichier appelé customborder.xml
dans votre dossier pouvant être dessiné:
<?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>
Maintenant, 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">
Cela devrait faire l'affaire.
Regarde aussi:
Creat XML appelé border.xml dans un dossier pouvant être dessiné comme ci-dessous:
<?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>
puis ajoutez ceci à la mise en page linéaire comme arrière-plan comme ceci:
Android:background="@drawable/border"
Créer un fichier XML dans un dossier pouvant être dessiné
<stroke
Android:width="2dp"
Android:color="#B40404" />
<padding
Android:bottom="5dp"
Android:left="5dp"
Android:right="5dp"
Android:top="5dp" />
<corners Android:radius="4dp" />
Maintenant, appelez ce XML à votre fond de mise en page petit
Android: background = "@ drawable/yourxml"
Essaye ça:
Par exemple, définissons res/drawable/my_custom_background.xml comme suit:
(créez cette mise en page dans votre dossier pouvant être dessiné) 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>
main.xml
<LinearLayout
Android:layout_gravity="center"
Android:layout_width="200dp"
Android:layout_height="200dp"
Android:background="@drawable/layout_border" />
</LinearLayout>
Je vais ajouter le lien Android docs à d'autres réponses.
https://developer.Android.com/guide/topics/resources/drawable-resource.html#Shape
Il décrit tous les attributs de Shape Drawable et de stroke
parmi eux pour définir la bordure.
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.
vous pouvez le faire aussi avec pragmatisme
GradientDrawable gradientDrawable=new GradientDrawable();
gradientDrawable.setStroke(4,getResources().getColor(R.color.line_Input));
Puis définissez l’arrière-plan de la mise en page comme suit:
LinearLayout layout = (LinearLayout ) findViewById(R.id.ayout); layout .setBackground(gradientDrawable);
Cette solution ne fera qu'ajouter la bordure, le corps de LinearLayout sera transparent.
Tout d’abord, créez cette bordure pouvant être dessinée dans le dossier pouvant être dessiné, 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 LinearLayout, ajoutez le fichier border.xml comme arrière-plan, comme ceci
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical"
Android:background="@drawable/border">
Ce n'est pas exactement une réponse à la question, mais pour ceux qui veulent juste afficher la bordure des éléments de débogage, vous pouvez simplement aller dans les paramètres de votre devloppers et activer les limites de la présentation dans la section de dessin.
Vous ne voulez pas créer une ressource exploitable?
<FrameLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="@Android:color/black"
Android:minHeight="128dp">
<FrameLayout
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_margin="1dp"
Android:background="@Android:color/white">
<TextView ... />
</FrameLayout>
</FrameLayout>