android - linearlayout - ¿Cómo agregar borde alrededor del diseño lineal, excepto en la parte inferior?
relative layout (4)
¿Cómo agregar borde alrededor del diseño lineal, excepto en la parte inferior? LinearLayout debe tener el borde a la izquierda, arriba y a la derecha, pero no en la parte inferior.
Aquí hay un enlace de Github a una biblioteca liviana y muy fácil de integrar que te permite jugar con las fronteras como quieras para cualquier widget que desees, simplemente basado en un widget FrameLayout.
Aquí hay un código de muestra rápido para que vea qué fácil es, pero encontrará más información en el enlace.
<com.khandelwal.library.view.BorderFrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:leftBorderColor="#00F0F0"
app:leftBorderWidth="10dp"
app:topBorderColor="#F0F000"
app:topBorderWidth="15dp"
app:rightBorderColor="#F000F0"
app:rightBorderWidth="20dp"
app:bottomBorderColor="#000000"
app:bottomBorderWidth="25dp" >
</com.khandelwal.library.view.BorderFrameLayout>
Por lo tanto, si no desea bordes al final, elimine las dos líneas de abajo en este widget personalizado, y eso está hecho.
Y no, no soy ni el autor de esta biblioteca ni uno de sus amigos ;-)
Cree un archivo XML llamado border.xml en la carpeta dibujable y coloque el siguiente código en él.
<?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>
A continuación, agregue un fondo a su diseño lineal de esta manera:
android:background="@drawable/border"
EDITAR:
Este XML fue probado con un galaxy s ejecutando GingerBread 2.3.3 y funcionó perfectamente como se muestra en la imagen a continuación:
ADEMÁS
probado con galaxy s 3 ejecutando JellyBean 4.1.2 y ejecutado perfectamente como se muestra en la imagen a continuación:
Finalmente, funciona perfectamente con todas las API
EDICION 2:
También se puede hacer usando un trazo para mantener el fondo transparente mientras se mantiene un borde excepto en la parte inferior con el siguiente código.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:left="0dp" android:right="0dp" android:top="0dp"
android:bottom="-10dp">
<shape android:shape="rectangle">
<stroke android:width="10dp" android:color="#B22222" />
</shape>
</item>
</layer-list>
espero que esto ayude .
Guarde este xml y agréguelo como fondo para el diseño lineal ....
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="4dp" android:color="#FF00FF00" />
<solid android:color="#ffffff" />
<padding android:left="7dp" android:top="7dp"
android:right="7dp" android:bottom="0dp" />
<corners android:radius="4dp" />
</shape>
¡Espero que esto ayude! :)
Kenny tiene razón, solo quiero aclarar algunas cosas.
- Crea el archivo
border.xml
y ponlo en la carpetares/drawable/
agregue el código
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#FF00FF00" /> <solid android:color="#ffffff" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="0dp" /> <corners android:radius="4dp" /> </shape>
retroceder en el terreno como
android:background="@drawable/border"
donde quiera que el borde
El primero no funcionó porque puse el border.xml
en la carpeta incorrecta.