una tomar studio recortar quitar programacion programa por poner picsart para online las imagen gratis fotos fondos fondo editar contorno con como blanco aplicaciones android background dialog scale

android - tomar - recortar fotos por el contorno online gratis



Disminuir(o recortar) el fondo del diálogo en Android (1)

Tengo una imagen de alta resolución (digamos 1900x1200), que quiero usar como fondo para mi diálogo. Es creado

Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.dialog);

Diseño del cuadro de diálogo:

<LinearLayout android:id="@+id/dialog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" >

Sin embargo, si utilizo esta imagen, el cuadro de diálogo (diseño) se expande para cubrir la imagen (o llegar a la pantalla completa, el que sea más pequeño). Si hago que la imagen sea muy pequeña (como 320x200), el escalado funciona bien. Lo que necesito, el diseño debe envolver solo el contenido, y NO la imagen de fondo. La imagen debe reducirse automáticamente o recortarse según el tamaño del diálogo, no importa, es una textura. No quiero establecer / escalar programáticamente (si se puede evitar), ya que quiero usar este fondo en todos mis cuadros de diálogo, y soy perezoso para cambiar el código, en lugar de XML :) También absolutamente no quiero crear todo tipo de resoluciones, como los cuadros de diálogo pueden ser de muy pequeña a pantalla completa, por lo que no hay posibilidad de adivinar el tamaño.

Lo que probé:

Agregar a LinearLayout : android:background="@drawable/your_image esto ampliará el diálogo para que se ajuste a la imagen, lo que no quiero.

Use FrameLayout. Como primer niño, agregue un ImageView, y viene el LinerLayout. Establezca lo siguiente en su ImageView.

android:src="@drawable/your_image" android:scaleType = "centerCrop" //I tried ALL scaleType

Intenté todos los trucos aquí: Imagen de fondo de escala para ajustar el contenido del diseño No funcionó.

Creo que hay una solución muy simple para esta solicitud tan simple y frecuente, simplemente no pude entenderlo.

Aquí está mi fuente de diseño de diálogo completo:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog" android:orientation="vertical" android:minWidth="300dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/back_dialog"> <EditText android:id="@+id/edittext_1" android:layout_width="match_parent" android:layout_height="wrap_content"/> <EditText android:id="@+id/edittext_2" android:layout_width="match_parent" android:layout_height="wrap_content"/> <CheckBox android:id="@+id/checkBox_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/IDS_ABC" /> <LinearLayout android:orientation="horizontal" android:paddingTop="10dp" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/button_ok" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/IDS_OK" /> <Button android:id="@+id/button_cancel" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="@string/IDS_CANCEL" /> </LinearLayout> </LinearLayout>

EDITAR Aquí hay una imagen para una mejor comprensión


La idea de la solución proviene de aquí: ¿Cómo envolver las vistas de contenido en lugar de fondo dibujable?

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:src="@drawable/back_dialog" android:scaleType="fitXY" android:layout_width="0dp" android:layout_height="0dp" android:layout_alignTop="@+id/dialog_layout_main" android:layout_alignBottom="@id/dialog_layout_main" android:layout_alignLeft="@id/dialog_layout_main" android:layout_alignRight="@id/dialog_layout_main" /> <LinearLayout android:id="@+id/dialog_layout_main" android:layout_width="match_parent" android:layout_height="wrap_content"> ......... </LinearLayout> </RelativeLayout>