tamaƱo puedo programacion problema porque poner para pantalla moviles imagenes fondo como celular cambiar bloqueo automaticamente aplicaciones ajustar android background imageview framelayout

puedo - problema fondo de pantalla android



Imagen de fondo de pantalla completa en una actividad (11)

Veo muchas aplicaciones que usan una imagen de pantalla completa como fondo. Esto es un ejemplo:

Quiero usar esto en un proyecto, la mejor manera que he encontrado hasta ahora para hacer esto es usar una imagen de gran tamaño, ponerla en una ImageView y usar android: adjustViewBounds="true" para ajustar los márgenes

El problema es que si una pantalla con una resolución muy alta, la imagen se queda corta.

Otra opción que pensé es usar la imagen en FrameLayout , con match_parent en width y height como fondo ... esto estira la imagen, pero creo que el resultado no es muy bueno.

¿Como lo harias?


Agrega android:background="@drawable/your_image" dentro de tu Relativelayout / Linearlayout Worked.


Deberías poner las imágenes de varios tamaños en la carpeta siguiente

para más detalles visita este link

  • ldpi

  • mdpi

  • hdpi

  • xhdpi

  • xxhdpi

y utilice el fondo RelativeLayout o LinearLayout en lugar de utilizar ImageView como ejemplo follwoing

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/your_image"> </RelativeLayout>


En líneas con la respuesta de NoToast, necesitarías tener múltiples versiones de "your_image" en tus res / drawable-ldpi, mdpi, hdpi, x-hdpi (para xtra pantallas grandes), eliminar match_parent y mantener android: adjustViewBounds = " cierto"


Ha pasado un tiempo desde que se publicó esta publicación, pero esto me ayudó.

Puede usar diseños anidados. Comience con un RelativeLayout, y coloque su ImageView en eso.

Establezca la altura y el ancho para match_parent para llenar la pantalla.

Establezca scaleType = "centreCrop" para que la imagen se ajuste a la pantalla y no se estire.

Luego puede poner cualquier otro diseño como lo haría normalmente, como el LinearLayout a continuación.

Puedes usar android: alpha para establecer la transparencia de la imagen.

<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"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="centerCrop" android:src="@drawable/image" android:alpha="0.6"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="There"/> </LinearLayout> </RelativeLayout>


Hay varias maneras en que puede hacerlo.

Opción 1:

Cree diferentes imágenes perfectas para diferentes ppp y colóquelas en una carpeta dibujable relacionada. Luego establece

android:background="@drawable/your_image

Opcion 2:

Agregue una sola imagen grande. Use FrameLayout. Como primer niño, agregue un ImageView . Establezca lo siguiente en su ImageView.

android:src="@drawable/your_image" android:scaleType = "centerCrop"


Otra opción es agregar una sola imagen (no necesariamente grande) en los dibujos (llamemos backgroung.jpg), cree un iv_background de ImageView en la raíz de su xml sin un atributo "src". Luego, en el método onCreate de la actividad correspondiente:

/* create a full screen window */ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.your_activity); /* adapt the image to the size of the display */ Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeResource( getResources(),R.drawable.background),size.x,size.y,true); /* fill the background ImageView with the resized image */ ImageView iv_background = (ImageView) findViewById(R.id.iv_background); iv_background.setImageBitmap(bmp);

Sin recorte, no hay muchas imágenes de diferentes tamaños. ¡Espero eso ayude!


Qué pasa

android:background="@drawable/your_image"

en el diseño principal de tu actividad?

De esta manera, también puede tener diferentes imágenes para diferentes densidades de pantalla colocándolas en las carpetas apropiadas res/drawable-**dpi .


Si desea que su imagen se muestre DETRÁS de una barra de acciones transparente, coloque lo siguiente en la definición de estilo de su tema:

<item name="windowActionBarOverlay">true</item> <item name="android:windowActionBarOverlay">true</item>

¡Disfrutar!


Si tiene bg.png como su imagen de fondo, simplemente:

<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/bg" tools:context=".MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/hello_world"/> </RelativeLayout>


Trabajando. deberías probar esto:

android:src="@drawable/img"


utilizar esta

android:background="@drawable/your_image

en su actividad, primer diseño lineal o relativo.