studio redondo programacion para móviles libro edición desarrollo curso boton aplicaciones android button border

redondo - manual de programacion android pdf



Android-borde para el botón (7)

Crea el archivo button_border.xml en tu carpeta dibujable.

res / drawable / button_border.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <solid android:color="#FFDA8200" /> <stroke android:width="3dp" android:color="#FFFF4917" /> </shape>

Y agregue el botón a su diseño de actividad XML y configure el fondo android:background="@drawable/button_border" .

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_border" android:text="Button Border" />

¿Cómo agrego un borde a un botón? ¿Es posible hacer esto sin recurrir al uso de imágenes?


En su diseño XML:

<Button android:id="@+id/cancelskill" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginLeft="25dp" android:layout_weight="1" android:background="@drawable/button_border" android:padding="10dp" android:text="Cancel" android:textAllCaps="false" android:textColor="#ffffff" android:textSize="20dp" />

En la carpeta dibujable, cree un archivo para el estilo de borde del botón:

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

Y en tu actividad:

GradientDrawable gd1 = new GradientDrawable(); gd1.setColor(0xFFF43F10); // Changes this drawbale to use a single color instead of a gradient gd1.setCornerRadius(5); gd1.setStroke(1, 0xFFF43F10); cancelskill.setBackgroundDrawable(gd1); cancelskill.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cancelskill.setBackgroundColor(Color.parseColor("#ffffff")); cancelskill.setTextColor(Color.parseColor("#f43f10")); GradientDrawable gd = new GradientDrawable(); gd.setColor(0xFFFFFFFF); // Changes this drawbale to use a single color instead of a gradient gd.setCornerRadius(5); gd.setStroke(1, 0xFFF43F10); cancelskill.setBackgroundDrawable(gd); finish(); } });



Paso 1: crea un archivo llamado: my_button_bg.xml

Paso 2: Coloque este archivo en res / drawables.xml

Paso 3: inserta el código debajo

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#00FF00" android:angle="270" /> <corners android:radius="3dp" /> <stroke android:width="5px" android:color="#000000" /> </shape>

Paso 4: Use el código "android: background =" @ dibujable / my_button_bg "donde sea necesario, por ejemplo, a continuación:

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Your Text" android:background="@drawable/my_button_bg" />


Sé que tiene un año de retraso, pero también puedes crear una imagen de 9 rutas. Hay una herramienta que viene con SDK de Android que ayuda a crear esa imagen. Ver este enlace: http://developer.android.com/tools/help/draw9patch.html

PD: la imagen también puede escalarse infinitamente


Si su botón no requiere un fondo transparente, entonces puede crear una ilusión de un borde usando un Diseño de Marco. Simplemente ajuste el atributo "relleno" de FrameLayout para cambiar el grosor del borde.

<FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="1sp" android:background="#000000"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Your text goes here" android:background="@color/white" android:textColor="@color/black" android:padding="10sp" /> </FrameLayout>

No estoy seguro de si los archivos xml de forma tienen colores de borde editables dinámicamente. Pero sí sé que con esta solución, puede cambiar dinámicamente el color del borde configurando el fondo FrameLayout.


crear drawable / button_green.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#003000" android:centerColor="#006000" android:endColor="#003000" android:angle="270" /> <corners android:radius="5dp" /> <stroke android:width="2px" android:color="#007000" /> </shape>

y señalarlo como @drawable/button_green :

<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:background="@drawable/button_green" android:text="Button" />