redondo - efectos botones android studio
Cómo crear botones sin bordes en Android (8)
Esta pregunta ya tiene una respuesta aquí:
Las Pautas de diseño de Android dicen que se usen botones sin bordes (ver la imagen a continuación), pero realmente no explican cómo. Alguien hizo la misma pregunta hace unas semanas: ¿Cómo crear botones estándar sin bordes (como en la guía de diseño mencionada)? y hubo una respuesta marcada como "la" respuesta, pero todavía estoy perdido y no veo una manera de agregar comentarios a una pregunta que ha sido "cerrada"
La respuesta dijo
"Mire en los atributos del tema
buttonBarStyle
,buttonBarButtonStyle
, ybuttonBarButtonStyle
"
pero todavía no puedo entender cómo usar esas cosas. Busqué en Google un poco y no pude encontrar nada, así que pensé que simplemente volvería a hacer la pregunta, y espero que alguien pueda proporcionar un poco más de detalles sobre cómo funciona esto.
Este código funciona para mí:
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:background="?android:attr/dividerVertical" />
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:measureWithLargestChild="true"
android:orientation="horizontal"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:paddingTop="0dip" >
<Button
android:id="@+id/cancel"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="onClickCancel"
android:text="@string/cancel" />
<Button
android:id="@+id/info"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="onClickInfo"
android:visibility="gone"
android:text="@string/info" />
<Button
android:id="@+id/ok"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="onClickSave"
android:text="@string/save" />
</LinearLayout>
Muestro 3 botones en la parte inferior
Hace algunos días tropezó con esto de nuevo.
Aquí mi solución:
Esto se hace en 2 pasos: configurar el atributo de fondo del botón en android: attr / seleccionableItemBackground crea un botón con comentarios pero sin fondo.
android:background="?android:attr/selectableItemBackground"
La línea para dividir el botón sin bordes del resto de su diseño se realiza mediante una vista con el fondo android: attr / dividerVertical
android:background="?android:attr/dividerVertical"
Para una mejor comprensión aquí hay un diseño para una combinación de botones OK / CANCELAR sin márgenes en la parte inferior de la pantalla (como en la imagen de la derecha de arriba).
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_alignParentBottom="true">
<View
android:layout_width="match_parent"
android:layout_height="1dip"
android:layout_marginLeft="4dip"
android:layout_marginRight="4dip"
android:background="?android:attr/dividerVertical"
android:layout_alignParentTop="true"/>
<View
android:id="@+id/ViewColorPickerHelper"
android:layout_width="1dip"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="4dip"
android:layout_marginTop="4dip"
android:background="?android:attr/dividerVertical"
android:layout_centerHorizontal="true"/>
<Button
android:id="@+id/BtnColorPickerCancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@id/ViewColorPickerHelper"
android:background="?android:attr/selectableItemBackground"
android:text="@android:string/cancel"
android:layout_alignParentBottom="true"/>
<Button
android:id="@+id/BtnColorPickerOk"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="?android:attr/selectableItemBackground"
android:text="@android:string/ok"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/ViewColorPickerHelper"/>
</RelativeLayout>
Mira esto: http://developer.android.com/guide/topics/ui/controls/button.html#Borderless
El atributo en su etiqueta Button
o ImageButton
:
style="?android:attr/borderlessButtonStyle"
Pensé que tenía esto resuelto cuando miré aquí hace unas semanas y noté la respuesta sobre el uso de un fondo transparente, pero no es lo suficientemente bueno porque evita que el botón se resalte cuando se presiona.
Además, configurar el estilo en Widget.Holo.Button.Borderless
no es apropiado porque hace que los límites de los botones sean grandes.
Para resolver esto de una vez por todas, verifico el código fuente de Android para la aplicación de calendario estándar y descubrí que usa lo siguiente:
android:background="?android:attr/selectableItemBackground"
Hacerlo de esta manera garantiza que el botón no tenga bordes y tenga el tamaño correcto.
Si usa ActionbarSherlock ...
<Button
android:id="@+id/my_button"
style="@style/Widget.Sherlock.ActionButton" />
También debe establecer los márgenes y el relleno de la imagen en 0. Consulte también la segunda respuesta, no marcada, en Cómo crear botones estándar sin bordes (como en la guía de diseño mencionada).
<Button android:id="@+id/my_button" style="@android:style/Widget.Holo.Button.Borderless" />
android:background="@android:color/transparent"