2012-05-04 8 views

Respuesta

168

Cree un archivo XML denominado 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, añadir un fondo a su disposición lineal de la siguiente manera:

  android:background="@drawable/border" 

EDIT:

Este XML se puso a prueba con una galaxia s corriendo pan de jengibre 2.3.3 y corrió perfectamente como se muestra en la imagen a continuación:

enter image description here

TAMBIÉN

probado con galaxy s 3 corriendo JellyBean 4.1.2 y funcionó perfectamente como se muestra en la imagen de abajo:

enter image description here

fin su aplicación funciona perfectamente con todas las API

EDIT 2:

También se puede hacer utilizando 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> 

hope this help.

+2

funciona con usted, esta probado y trabaje conmigo, compruébelo –

+2

¿Hay algo más que agregar? No funcionó para mí La otra respuesta a continuación funcionó bien. – shim

+0

¿Esto solo funciona para ciertas API o algo así? – shim

56

Guardar este XML y añadir 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! :)

+3

Funciona ... esto debe ser el hombre respuesta aceptada – Noman

+0

Esto debe ser aceptada Answer.Work bien con Nexus 5 5.1.1 – kosala

+0

Esto debe aceptarse respuesta, trabajado como charm –

22

Kenny tiene razón, solo quiere aclarar algunas cosas.

  1. Cree el archivo border.xml y ponerlo en la carpeta res/drawable/
  2. añadir el código de

    <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> 
    
  3. situado detrás suelo como android:background="@drawable/border" donde desea que la frontera

Mina primero no funcionó porque puse el border.xml en el carpeta equivocada!

+0

falta la etiqueta final, la etiqueta '' al final del código –

2

Aquí está Github link en 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> 

lo tanto, si usted no quiere fronteras en la parte inferior, elimine las dos líneas sobre la parte inferior de este widget personalizado, y que está hecho.

Y no, no soy ni el autor de esta biblioteca, ni uno de su amigo ;-)

+0

Esto es lo que he estado buscando :) – dens14345

Cuestiones relacionadas