una studio poner para pantalla insertar imagenes imagen fondo como codigo app ampliar ajustar android background android-relativelayout

android - studio - Cómo hacer que la imagen llene el fondo RelativeLayout sin estirar



insertar imagen de fondo android studio (4)

Aparte de convertir tu imagen en un parche nueve, no creo que esto sea posible. Lo que podría hacer en su lugar es agregar un ImageView como la primera vista en su RelativeLayout. Establezca layout_centerInParent en true y tenga layout_width y layout_height establecidos en match_parent. A continuación, establezca scaleType en centerCrop. Eso asegurará que la imagen llene la pantalla sin distorsión, pero dependiendo del tamaño / orientación de la pantalla, parte de la parte superior / inferior o izquierda / derecha de la imagen se puede cortar.

<ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:scaleType="centerCrop" android:src="@drawable/background" />

Cualquier otra vista en RelativeLayout aparecerá en la parte superior de ImageView, siempre y cuando sea la primera vista en RelativeLayout (cuando esté en el xml).

En mi proyecto de Android, no estoy muy seguro de cómo hacer que mi imagen de fondo llene la totalidad del elemento raíz RelativeLayout en XML, que es el tamaño de la pantalla. Quiero estar seguro de que esto funciona para todas las relaciones de aspecto, por lo que la imagen se recortará vertical u horizontalmente según sea necesario. ¿Alguien sabe cómo hacer esto fácilmente? Solo he visto preguntas relacionadas con ImageView sy Button s, pero no realmente con View genéricas.

Mi archivo XML actualmente:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/enclosing_rl" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background" android:fitsSystemWindows="false"> <!-- Other elements --> </RelativeLayout>


Cree un recurso XML dibujable de mapa de bits en su carpeta res / drawable:

<?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/background" android:tileMode="repeat" />

Utilice ese dibujable como fondo en lugar de @ drawable / background


Su respuesta inteligente y 100% útil es establecer la propiedad scaleType de la vista de imagen.

android:scaleType="fitCenter"


de acuerdo con esta answer Si desea que su ImageView llene su RelativeLayout , use los parámetros de align para ImageView .

puede poner todas sus vistas en un LinearLayout y configurar el parámetro de align en su ImageView fondo:

<RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/my_background" android:scaleType="centerCrop" android:layout_alignTop="@+id/my_views" android:layout_alignBottom="@+id/my_views" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/my_views" android:orientation="vertical" > <!-- stuff --> </LinearLayout> </RelativeLayout>