Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Android
Controles:TutorialDeBotonesEnAndroid
SQL
ANDROID STUDIO
DATOS
DATOS
FUNDAMENTOS
WEB SERVICES
ANDROID STUDIO
Contacto
UI
CONEXIN DE RED
UI
CONEXIN DE RED
RECURSOS
FUNDAMENTOS
WEB SERVICES
RECURSOS
Inicio DesarrolloAndroid UI
Controles:TutorialDeBotonesEnAndroid
Controles: Tutorial De
Botones En Android
JamesRevelo
Comments
febrero25,2016
UI
Search
18
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
Qu buscas?
Lo Ms Popular
Aplicacin Android
Con Navigation
Drawer Y Tabs
1/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Cmo Sincronizar
Sqlite Con Mysql En
Android?
NavigationView:
Navigation Drawer
Con Material Design
TabLayout: Cmo
Aadir Pestaas En
Android?
Servicio Web RESTful
Para Android Con
Php, Mysql y Json
1. Implementar Un Botn En
Android
Toolbar En Android:
Creacin De Action
Bar En Material
Design
CrearProyectoenAndroidStudio
Antes que nada abre Android Studio, ve al men de
herramientas y selecciona File > New > New
Projectparacrearunnuevoproyecto.
Consumir Un Servicio
Web REST Desde
Android
Como Crear
Dilogos En Android?
Tutorial De Parsing
Xml En Android Con
XmlPullParser
Usar Transiciones En
Android Con Material
Design
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
2/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Template
recomendada
ApplicationName:usaelnombreBotones.
Company Domain Name: Para el dominio elige la
entidad que represente tu creacin, puede ser
tu_nombre.com, el nombre_de_tu_empresa.com o
simplementetest.com.
Projection Location: En la ubicacin selecciona la
carpeta que tengas destinada para guardar tus
proyectos. Recuerda no usar espacios en ni
caracteresespecialesconacentos.
Ahoraenlosfactores de forma deja por defecto el SDK
mnimodeejecucinenlaversin11deAndroid.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
3/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
4/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
seguirtodoeltutorial.
LaClaseButton
Un botn es un control con texto o imagen que realiza
unaaccincuandoelusuariolopresiona.LaclaseJava
quelorepresenteesButtonypuedesreferirtealdentro
deunlayoutconlaetiqueta <Button> respectivamente.
Paraagregarunbotnalaactividadprincipaldetuapp
dirgetea actividad_botones.xml y agrega la siguiente
definicin.
<?xmlversion="1.0"encoding="utf8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
5/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.herprogramacion.botones.ActividadBotones"
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="AGREGAR"/>
</RelativeLayout>
Conellocentramoselbotnenelrelativelayout.
El texto que especifica su accin especifcalo en el
atributo android:text . En el ejemplo anterior se us la
palabra "AGREGAR" .
Este cdigo debera mostrar en la ventana Preview la
siguienteimagen:
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
6/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
AtributosdeunBotn
Siquierescambiarlaspropiedadesdeunbotnrecurrea
los atributos que la documentacin presenta en formato
JavaoXML.
Debido a que Button extiende de TextView , puedes
usartodoslosatributosdeestaclase.
Algunosdelosmsutilizadosson:
Atributo
Descripcin
android:text
Permitecambiareltextode
unbotn
android:background
Seusaparacambiarel
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
7/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
fondodelbotn.Puedes
usarunrecursodelarchivo
colors.xml oun
drawable.
android:enabled
Determinarsielbotnest
habilitadoanteloseventos
delusuario.Usa
true (valorpor
defecto)parahabilitarloy
false encasocontrario.
android:gravity
Asignaunaposicinal
textoconrespectoalos
ejesxoydependiendode
laorientacindeseada.
Porejemplo:Siusas top ,
eltextosealinearhaciael
bordesuperior.
android:id
Representaalidentificador
delbotnparadiferenciar
suexistenciadeotros
views.
android:onClick
Almacenalareferenciade
unmtodoquese
ejecutaralmomentode
presionarelbotn.
android:textColor
Determinaelcolordeltexto
enelbotn
android:drawable*
Determinaundrawable
queserdibujadoenla
orientacinestablecida.
Porejemplo:Siusasel
atributo
android:drawableBottom ,
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
8/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
eldrawableserdibujado
debajodeltexto.
Cambiartextodeunbotn
Asigna
una
cadena
directamente
al
atributo
android:text paraindicarlaaccindelbotn.
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Agregar"/>
<Button
...
android:textAllCaps="false"/>
ActividadBotones.java . Obtn la
9/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
parmetro.
publicclassActividadBotonesextendsAppCompatActivity
@Override
protectedvoidonCreate(BundlesavedInstanceState
super.onCreate(savedInstanceState);
setContentView(R.layout.actividad_botones
Buttonboton=(Button)findViewById(
boton.setText("Ordenar");
}
}
Estoproduceelsiguienteresultado:
Cambiar texto de botn en
Androidprogramticamente
Ahora tambin es posible asignar un recurso string al
textodelbotndesdeXMLyJava.
En caso de XML usa la notacin de recurso @string o
@android:string (strings del sistema) de la siguiente
forma:
<Button
...
android:text="@string/texto_agregar"/>
10/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Buttonboton=(Button)findViewById(R.id.button
boton.setText(R.string.texto_agregar);
CambiarColordeFondo
Modificar el fondo de un botn implica el cambio del
atributo android:background por un recurso de color o
drawable.
Ejemplo:
Usar el color primario del proyecto como color de
backgrounddeunbotn
Solucin:
Invoca la referencia @color/colorPrimary de tu archivo
values/colors.xml:
<Button
...
android:background="@color/colorPrimary"/>
Elresultadoes:
Cambiar background de botn
enAndroid
Sin embargo, hacer esto hace perder la reaccin de
superficiequesetenaantesporelMaterialDesign.
Laformaredondeadatampocosehacepresente.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
11/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Soloquedalaelevacinalmomentodetocarelbotn.
Paraconservarelefectoycambiarelcolordelbotnusa
elatributo app:backgrountTint delasiguienteforma:
<?xmlversion="1.0"encoding="utf8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/resauto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.herprogramacion.botones.ActividadBotones"
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
app:backgroundTint="@color/colorPrimary"
android:text="@string/texto_agregar"
</RelativeLayout>
Astendras:
Usar
atributo
app:backgroundTint
botnAndroid
en
BotnconTextoeImagen
Enlaseccindeatributosvistequeexistenatributoscon
laforma android:drawable* para alinearuna imagen al
textodeunbotn.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
12/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Tucdigodeberaquedardelasiguienteforma:
<?xmlversion="1.0"encoding="utf8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/resauto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.herprogramacion.botones.ActividadBotones"
<Button
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
13/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_pizza"
android:drawablePadding="8dp"
android:id="@+id/boton"
android:textColor="@android:color/white"
app:backgroundTint="#ef9a9a"
android:text="Ordenar"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
</RelativeLayout>
Yelresultadosera:
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
14/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
LaClaseImageButton
ImageButton funciona exactamente cmo Button , solo
puedes
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
15/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/boton"
android:src="@mipmap/ic_launcher"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
Ejecutalaappyverslaaparienciadelbotnfinal:
Ejemplo
de
ImageButton en
Android
CrearBotnDesdeAndroidStudio
UsalapestaaDesignqueseveenlavistadeunlayout
paraarrastrarysoltarunbotndesdelapaletaocambiar
susatributos.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
16/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
17/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
18/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
RaisedButtons
FlatButtons
FloatingActionButtons(FAB)
Losraisedbuttonssonlosquehemosvistohastaahora.
Tienen backgrounds rectangulares, se elevan ante el
clickdelusuarioysusuperficiereaccionaconunefecto
ripple.
Se usan sobre layouts que tienen gran variedad de
contenido para delimitar las secciones o elementos.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
19/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
20/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
ManejarLosEventosDeUnBotn
Es de esperar que un botn dispara un evento al ser
clickeado por un usuario, lo que permitir ejecutar la
accinalaquehacereferenciadichoview.
Para procesar el evento existen varias formas de
proceder.
UsarelAtributoandroid:onClick
Anteriormentecuandovistelaclase Button semencion
la existencia de android:onClick() para asignar un
mtodo que se ejecute cuando el usuario presione el
botn.
Para ello se requiere que el mtodo cumpla con las
siguientescondiciones:
1.Queseapblico
2.Queseatipo void
3.Querecibaunparmetrodeltipo View
4.Debe declararse en la actividad que usa el mismo
layout
Ejemplo:
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
21/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
<?xmlversion="1.0"encoding="utf8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.herprogramacion.botones.ActividadBotones"
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/texto_agregar"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Alaespera..."
android:id="@+id/textView"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
</RelativeLayout>
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
22/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
importandroid.os.Bundle;
importandroid.support.v7.app.AppCompatActivity
importandroid.view.View;
importandroid.widget.TextView;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.Date;
publicclassActividadBotonesextendsAppCompatActivity
privateTextViewtexto;
@Override
protectedvoidonCreate(BundlesavedInstanceState
super.onCreate(savedInstanceState);
setContentView(R.layout.actividad_botones
texto=(TextView)findViewById(R.id.
}
publicvoidcambiarMensaje(Viewv){
SimpleDateFormatformato=newSimpleDateFormat
DatefechaActual=Calendar.getInstance
Strings=formato.format(fechaActual
texto.setText(String.format("Botnpresionado:%s"
}
}
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
23/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Losiguienteesdirigirseallayoutyasignarelmtodoen
el botn con android:onClick .Al momento de hacerlo,
el motor de Android Studio debe sugerirte que
cambiarMensaje() estdisponible.
Elatributoquedaradelasiguienteforma:
<Button
...
android:onClick="cambiarMensaje"/>
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
24/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
UsarEscuchaAnnimaOnClickListener
Otraformaescrearunainstanciaannimadelainterfaz
View.OnClickListener para manejar los eventos del
botn.
Esto requiere usar el mtodo setOnClickListener()
para asignar el listener al botn y luego sobrescribir el
controlador onClick() conlasaccionesaejecutar.
Ejemplo:
Iniciarotraactividadalpresionarunbotn
Solucin
Loprimeroesaadirotraactividadalproyectoactualque
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
25/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
NombraalanuevaactividadcomoActividadNuevay
confirma.
26/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
lacreacindeunnuevo OnClickListener .
Buttonboton=(Button)findViewById(R.id.button
boton.setOnClickListener(newView.OnClickListener
@Override
publicvoidonClick(Viewv){
}
});
Buttonboton=(Button)findViewById(R.id.button
boton.setOnClickListener(newView.OnClickListener
@Override
publicvoidonClick(Viewv){
Intenti=newIntent(ActividadBotones
startActivity(i);
}
});
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
27/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Usar
OnClickListener
Contenedor
Sobre
el
sobreelcontenedordelbotncomoloesunaactividado
unfragmento.
As podrs sobrescribir el controlador onClick() para
que tenga un alcance global para todos los views que
pertenezcan al contenedor. Lo que es de utilidad si se
deseasleerclickssobrevarioselementosaltiempo.
Ejemplo:
Cambiar el color del background de una actividad
dependiendo de qu botn de 4 disponibles se
presione.
Solucin:
Pon 4 botones centrados horizontalmente y uno debajo
de otro dentro del relative layout. Usa los siguientes
coloresensustextos:Verdeazulado,Verde,Verdeclaro
yLima.
actividad_botones.xml
<?xmlversion="1.0"encoding="utf8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
28/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
tools:context="com.herprogramacion.botones.ActividadBotones"
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Verdeazulado"
android:layout_centerHorizontal="true"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Verde"
android:id="@+id/button2"
android:layout_below="@+id/button"
android:layout_centerHorizontal="true"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Verdeclaro"
android:id="@+id/button3"
android:layout_below="@+id/button2"
android:layout_centerHorizontal="true"
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lima"
android:id="@+id/button4"
android:layout_below="@+id/button3"
android:layout_centerHorizontal="true"
</RelativeLayout>
publicclassActividadBotonesextendsAppCompatActivity
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
29/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
@Override
protectedvoidonCreate(BundlesavedInstanceState
super.onCreate(savedInstanceState);
setContentView(R.layout.actividad_botones
}
Sidejaselcdigocomoest,AndroidStudioteinformar
que hay un error porque no has sobreescrito el
controlador.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
30/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
31/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Conelloconstruirselcuerpodeformaautomtica:
@Override
publicvoidonClick(Viewv){
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
32/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Elalgoritmoseraelsiguiente:
el
view
raz
de
la
jerarqua
con getRootView() .
Abrirun switch coneliddelviewclickeado.Elidse
obtieneconelmtodo getId() .
Elegir el color dependiendo del caso. Convierte una
definicin
hexadecimal
Color.parseColor() .
en
entero
con
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.support.v7.app.AppCompatActivity
importandroid.view.View;
publicclassActividadBotonesextendsAppCompatActivity
@Override
protectedvoidonCreate(BundlesavedInstanceState
super.onCreate(savedInstanceState);
setContentView(R.layout.actividad_botones
findViewById(R.id.button).setOnClickListener
findViewById(R.id.button2).setOnClickListener
findViewById(R.id.button3).setOnClickListener
findViewById(R.id.button4).setOnClickListener
}
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
33/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
@Override
publicvoidonClick(Viewv){
intcolor;
Viewcontenedor=v.getRootView();
switch(v.getId()){
caseR.id.button:
color=Color.parseColor("#80CBC4"
break;
caseR.id.button2:
color=Color.parseColor("#A5D6A7"
break;
caseR.id.button3:
color=Color.parseColor("#C5E1A5"
break;
caseR.id.button4:
color=Color.parseColor("#E6EE9C"
break;
default:
color=Color.WHITE;//Blano
}
contenedor.setBackgroundColor(color);
}
}
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
34/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
PersonalizarElEstiloDeUnBotn
Ya viste algunos atributos que puedes cambiar en los
botonesparatransformarsuapariencia.Conesopuedes
iratuarchivostyles.xmlycrearestilosparaestosviews.
A continuacin te mostrar algunos casos que pueden
presentarsealahoradequererpersonalizarunbotn.
CambiarBackground
Si quieres omitir la forma por defecto del botn y los
efectos de reaccin, puedes probar usando un recurso
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
35/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
drawabledeltipoStateList.
Esteelementorepresentamltiplesdrawablesquesern
usadosenunmismoviewsimulandocambiodeestados.
Esto se ajusta perfectamente a los botones ya que su
aparienciavarasegnlainteraccin.
Ejemplo:
Crearbackgrounddeunbotncondiseoplano(Flat
Design)
Solucin:
Lo primero que hars es crear un nuevo drawable
llamado bk_boton_plano.xml .
Para ello ve a la carpeta drawable, presiona click
derechoyseleccionaDrawableresourcefile.
ConfirmaelnombreconOK:
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
36/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
LadefinicinXMLrequierequeelnodoprincipalseadel
tipo <selector> .
Dentro de este deben existir elementos <item> que
definan el drawable que asignar a cada estado del
botn.
Existencuatroestadosprimordiales:
normal
enfocado( state_focused )
presionado( state_pressed )
deshabilitado( state_enabled> false ).
Conloanteriorelcdigoquedaraas:
bk_boton_plano.xml
<?xmlversion="1.0"encoding="utf8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android"
<itemandroid:drawable="@drawable/boton_presionado"
android:state_pressed="true"/>
<itemandroid:drawable="@drawable/boton_enfocado"
android:state_focused="true"/>
<itemandroid:drawable="@drawable/boton_deshabilitado"
android:state_enabled="false"/>
<itemandroid:drawable="@drawable/boton_normal"
</selector>
37/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
profundo.
boton_normal.xml
<?xmlversion="1.0"encoding="utf8"?>
<layerlistxmlns:android="http://schemas.android.com/apk/res/android"
<!Sombra>
<itemandroid:top="4dp">
<shape>
<solidandroid:color="#FF7043"/>
<cornersandroid:radius="4dip"/>
</shape>
</item>
<!Contenido>
<itemandroid:bottom="4dp">
<shape>
<solidandroid:color="#FF8A65"/>
<cornersandroid:radius="4dip"/>
</shape>
</item>
</layerlist>
<?xmlversion="1.0"encoding="utf8"?>
<layerlistxmlns:android="http://schemas.android.com/apk/res/android"
<!Sombra>
<itemandroid:top="4dp">
<shape>
<solidandroid:color="#FFCA28"/>
<cornersandroid:radius="4dip"/>
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
38/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
</shape>
</item>
<!Contenido>
<itemandroid:bottom="4dp">
<shape>
<solidandroid:color="#FFD54F"/>
<cornersandroid:radius="4dip"/>
</shape>
</item>
</layerlist>
Apoyos
28
<?xmlversion="1.0"encoding="utf8"?>
<layerlistxmlns:android="http://schemas.android.com/apk/res/android"
<!Sombra>
<itemandroid:top="4dp">
<shape>
<solidandroid:color="#FFA726"/>
<cornersandroid:radius="4dip"/>
</shape>
</item>
<!Contenido>
<itemandroid:bottom="4dp">
<shape>
<solidandroid:color="#FFB74D"/>
<cornersandroid:radius="4dip"/>
</shape>
</item>
</layerlist>
Tecnologa de Native
39/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Tecnologa de Native
Info
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textColor="@android:color/white"
android:background="@drawable/bk_boton_plano"
android:stateListAnimator="@null"
android:text="@string/texto_agregar"/>
Esteseranlosestadoslogrados:
EstiloBorderLessoBotnsinBordes
Ya habas visto que el botn sin bordes se le denomina
FlatbuttonenelMaterialDesign.
Para
crear
dicho
acabado
puedes
aplicar
el
estilo Widget.AppCompat.Button.Borderless .
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
40/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Porejemplo
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Llamar"
style="@style/Widget.AppCompat.Button.Borderless
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
Produciraelsiguienteresultado:
Sideseasqueelcolordeltextoseaelmismodelacento,
entonces
usa Widget.AppCompat.Button.Borderless.Colored .
Conclusin
Los botones son unos de los widgets ms bsicos en
Android.
Tienenlafuncin de ayudar al usuario a decidir por sus
accionessobreelcontenidoydatosdelaapp.
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
41/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Saber
describir
su
comportamiento
con
Quieresaprenderadisearbasesde
datosdesde0?
Artculos Relacionados
NavigationView:
Navigation
CmoCrear
CheckBox:
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
42/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
DrawerCon
MaterialDesign
UnaActividadDe
PreferenciasEn
Android?
ControlesEn
Android
Comentarios
Comunidad
Recomendar 1
Compartir
Iniciarsesin
ordenarporelmejor
netealadiscusin...
LucasEmanuelOrtiz hace3meses
ExcelenteMaterial!Adhieroawebserveisysera
muyutiluntutorialsobreautenticacino
implementacindeAbstractAccountAuthentication!!
2
Responder Compartir
sergiomorales hace3meses
Wooow,estoesjustoloqueestababuscandohace2
das,comosiempreunexcelentetutorial,mehas
resueltomuchasdudas,magnificotrabajo.
2
Responder Compartir
GraciasSergio,ojalatesirva.
Responder Compartir
MichaelRoa haceunmes
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
43/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
MichaelRoa haceunmes
Muybuenotustutoriales!!
1
Responder Compartir
JamesReveloUrrea
haceunmes
Moder. >MichaelRoa
GraciasMichael,quebienquetesirvan!
Responder Compartir
Alejandro hace3meses
Hola,
Muybuentutorial,comotodoslosdems:)Hace
unosdasteenviuncorreoconpropuestaspara
nuevostutoriales.Tehallegado?Estabainteresado
enuntutorialenelqueusesunViewPagerparacrear
unSlideshowysipuedes,conunindicadorpara
saberenqueimagenests.Algotipoalaimagenque
tepongoaquabajo,peroenplanguay,con
animacionesyesascosasquetuhacesjaja
Siguecurrandoasdebien,quedagustovercomo
tustutorialessondelomejorquehayenlared.
Saludos
verms
Responder Compartir
JamesReveloUrrea
hace3meses
Moder. >Alejandro
HolaAlejandro.
Losientopornoresponderte,laverdades
quemellegandemasiadoscorreoscon
preguntasymeesimposiblecontestarlos
todos.Aligualmepasaconloscomentarios
quemedejan.Peroesonosignificaquelos
ignore.
Encuantoaltutoquemedices,yalotengoen
milistadetemas.Noseparacuandovayaa
salir,porloquenopodraprometerteun
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
44/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
salir,porloquenopodraprometerteun
fecha.Perotenloporseguroquelovoya
escribir.
Saludosygraciasporseguirmiblog
compaero!
Responder Compartir
Alejandro>JamesReveloUrrea
hace3meses
Loesperarconganas.
Saludos
Responder Compartir
webserveis hace3meses
Felicidadparaeltutomuycompletoparacrear
botonesraised,flatetc...Peroveoquetehas
descuidadoencomoindicarparacambiarelcolordel
ripple.
<itemname="colorControlHighlight">id_color</item>
ysiquieresacabardecomplementareltutorial,como
crearelefectosombra"elevation"tedejounenlace
http://es.stackoverflow.com/qu...
1
Responder Compartir
JamesReveloUrrea
hace3meses
Moder. >webserveis
Graciasporelaportecompaero.Paralos
ripplepiensocrearuntutomasadelante.
Saludos!
1
Responder Compartir
LuisDavidGuzman hace3meses
Siiiii!!!!!!Fantasticoexceltentutorial,muybuenoy
muybienexplicadoxD,MuchasGraciasportan
excelentematerial!!!
1
Responder Compartir
GraciasLuis:D
Responder Compartir
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
45/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Ricky hace3meses
Ereselputoamojames....bienexplicado,todoslos
casosposibles,explicadoclaritoycongrficos
esclarecedores.
Solounpequeo"pero"nohasplanteadohacer
videotutorialessehacenmslivianosparanosotros
Ereselmejorjames
1
Responder Compartir
webserveis>Ricky hace3meses
Yolosvideotutorialesnomegustanparanada
entemasdeprogramacin,aportanmenosen
contenido,cuandoconoceunpocosobrela
materiateabures,encambiolostutoriales
vasdirectoalgrano,obienpuedesteneruna
mejorvistageneraldeltutorial,podersituarte
encualquierpartedeltutorialparacomprender
mejorlacosa.
Losvideotutorialessolosirvenpara
determinadascuestionesynopormostrar
bloquesdecdigoenteros,sinopequeas
funcionalidades(introduccindelenguajes,
patronesdediseo,funcionalidadesdelide).
Lostutorialesdejamessonmuyextensosy
muyprcticos,avecescomplicadosde
entender"elsistema,patrnetc..",sinotienes
siempretodoelcdigoalavista.
1
Responder Compartir
JamesReveloUrrea
hace3meses
Moder. >Ricky
ajjajajagraciasRicky.Esalaidea,especificar
loscasosquemspuedanpresentarsenos.
Mmmlosvideosannolostengoprevistos,
peroesbuenaidea.
Saludos!
Responder Compartir
GonHer hace2meses
Muybuentutoria!Tehagounapregunta:Sepuede
aumentarloscornerredondeados?aumentarel
redondeadoporejemploa5/6dp?
Saludos
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
46/47
26/5/2016
Controles:TutorialDeBotonesEnAndroid
Saludos
Responder Compartir
JamesReveloUrrea
hace2meses
Moder. >GonHer
SiclaroGon,sihablasdelpersonalizadosolo
http://www.hermosaprogramacion.com/2016/02/controlestutorialbotonesandroid/
47/47