Estoy usando un diseño lineal para mostrar una pantalla inicial bastante ligera. Tiene 1 botón que se supone que se centra en la pantalla tanto horizontal como verticalmente. Sin embargo, no importa lo que intente hacer, el botón se alineará en el centro. He incluido el XML a continuación, ¿alguien puede señalarme en la dirección correcta?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageButton android:id="@+id/btnFindMe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:background="@drawable/findme"></ImageButton>
</LinearLayout>
layout_width
en "wrap_content". ¡Posteriormentelayout_gravity
hicieron lo que se suponía que debía hacer!Respuestas:
Si desea centrar un elemento en el medio de la pantalla, no utilice un,
LinearLayout
ya que están destinados a mostrar una serie de elementos en una fila.Use un
RelativeLayout
en su lugar.Entonces reemplace:
para la
RelativeLayout
opción relevante :Entonces su archivo de diseño se verá así:
fuente
Centro utilizando un diseño lineal:
fuente
¿Has intentado definir
android:gravity="center_vertical|center_horizontal"
dentro del diseño y la configuraciónandroid:layout_weight="1"
de la imagen?fuente
android:weight="1"
el botón para centrarlo.)Un método de uso común que funciona con diseño lineal es establecer una propiedad en el botón de imagen
Puede elegir si alinear a la izquierda, alinear al centro o alinear a la derecha cada objeto en el diseño lineal. Tenga en cuenta que la línea anterior es exactamente la misma que
fuente
Agrega esto
En LinearLayout.
fuente
android:gravity="center"
Si usa
LinearLayout
puede agregar centro de gravedad:fuente
fácil con esto
fuente
Puedes usar el
RelativeLayout
.fuente
El código anterior funcionará.
fuente
muestra completa y de trabajo de mi máquina ...
fuente
Según la documentación de Android para los atributos XML de Android: layout_gravity , podemos hacerlo fácilmente :)
fuente
Establecer en verdadero
android:layout_alignParentTop="true"
yandroid:layout_centerHorizontal="true"
en el botón, así:fuente
También puedes probar este código:
fuente
solo use (para hacerlo en el centro de su diseño)
y use
cambiar de posición
fuente
También puede ajustar el ancho de la LinearLayout de
wrap_content
usoandroid:layout_centerInParent
,android:layout_centerVertical="true"
:fuente
Esto es trabajo para mí.
fuente
¿Intentaste esto?
fuente
utilizar
fuente
Sería más fácil usar diseños relativos, pero para diseños lineales, generalmente centro, asegurándome de que el ancho coincida con el padre:
y luego solo dé márgenes a derecha e izquierda en consecuencia.
fuente