im tratando de possition mi botón no exactamente en el centro, pero digamos que en el 2/5s de la altura de la pantalla, que estaba buscando atributo sin éxito, por lo que he intentado este enfoque¿Hay alguna forma de compensar una vista desde el centro en Android?
<RelativeLayout xmlns: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:background="@drawable/background"
android:padding="20dp" >
<ImageButton
android:id="@+id/flashlight_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_above="@+id/fakeView"
android:background="@null"
android:contentDescription="@string/flashlight_button_description"
android:src="@drawable/freeml_bright" />
<View
android:id="@+id/fakeView"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_centerInParent="true"
android:background="#FFAABB" />
</RelativeLayout>
sin embargo, no funciona , incluso si configuro un margen en la vista falsa.
¿Alguna idea?
// // EDITAR
gracias por te responde chicos, funciona atributo de relleno, sin embargo, ya que es una imagen grande y si quiero que empiece a 2/5ths de altura de la pantalla, que cubre el punto central de pantalla, así que si uso el atributo de relleno, funciona, pero lo aleja del centro y no permite que lo cubra. Lo siento mal
Sin embargo, lo hice funcionar usando el diseño lineal, que quería evitar porque hay más vista en la parte superior e inferior uno al lado del otro por lo que daría lugar a vistas anidadas mediante el diseño lineal. Desafortunadamente, creo que es la única opción.
Básicamente se utiliza otra disposición lineal que llena el espacio restante no se utiliza por vistas superior e inferior con la altura = 0DP y peso = 1 y establece su gravedad para centrar
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/application_logo_description"
android:src="@drawable/mylight" />
<ImageButton
android:id="@+id/settings_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:background="@null"
android:contentDescription="@string/settings_button_description"
android:src="@drawable/settings_button" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/flashlight_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:contentDescription="@string/flashlight_button_description"
android:src="@drawable/flashlight_button_selector" />
<View
android:id="@+id/fakeView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="60dp"
android:background="#FFAABB" />
</LinearLayout>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:contentDescription="@string/powered_by_description"
android:src="@drawable/powered_by" />
<ImageButton
android:id="@+id/ad_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@null"
android:contentDescription="@string/ad_button_description"
android:src="@drawable/freeml" />
</LinearLayout>
Gracias por su entrada.
Hola, funciona, sin embargo, como yo, lo hubiera engañar usted, pd es una imagen bastante grande en el ImageButton, por lo que si quiero para que comience en 2/5s de la altura de la pantalla, por lo tanto, cubre el punto central de la pantalla. SI uso su respuesta sugerida, presiona el botón desde el centro y no permite que lo cubra. – urSus
Hmm, tal vez intente reemplazar paddingTop con paddingBottom? –
Oh, de hecho, lo leí mal, no funciona el ajuste de relleno en la vista falsa centrada. Establecer el relleno en el botón de arriba simplemente empuja el botón hacia arriba, lo cual no es la solución para mí, ya que quiero que cubra el punto medio – urSus