Estoy tratando de crear un cuadro de diálogo personalizado en Android. Pero sea lo que sea que intenté hacer, no puedo cambiar el ancho del diálogo. Simplemente sigue siendo el mismo. La siguiente es la vista que estoy configurando como contenido para el diálogo.Crear un cuadro de diálogo personalizado en Android
<RelativeLayout
android:id="@+id/current_stats"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible">
<ImageView android:id="@+id/player_image"
android:src="@drawable/person"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"/>
<TextView
android:id="@+id/player_name"
android:layout_below="@id/player_image"
android:layout_centerHorizontal="true"
android:text="Raja Ram"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageButton android:id="@+id/dialog_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:background="#00000000"
android:src="@drawable/close_button_selector"/>
<ImageButton android:id="@+id/dialog_flip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:background="#00000000"
android:src="@drawable/rotate"/>
</RelativeLayout>
Como puede ver, en todas partes estoy usando wrap_content en este ejemplo de código. También probé las siguientes opciones
1) Estableciendo un estilo personalizado al crear el cuadro de diálogo de esta manera.
dialog = new Dialog(this,R.style.Theme_Dialog);
Y el estilo de la siguiente manera
<resources>
<style name="Theme" parent="android:Theme">
</style>
<style name="Theme.Dialog">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
</resources>
2) Configuración de los parámetros de la vista en el onCreateDialog() como esto
LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.player_info, null, false);
ViewGroup.LayoutParams p = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.setContentView(v,p);
3) También probé a configurar la ventana parámetros como este en el método onCreateDialog()
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width=WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(params);
Pero de nuevo no hubo suerte. ¿Puede alguien ayudarme con este problema? ¿¿Estoy haciendo algo mal?? También, ¿me pueden sugerir cómo configurar las posiciones x e y para la ventana de Diálogo?
Gracias
Gracias por su respuesta. Mi problema es que lo quiero más como una ventana emergente. En lugar de usar todo el ancho de la pantalla, solo quiero que consuma solo el ancho requerido para mantener la vista. Y no estoy comenzando una actividad separada en ese diálogo. Estoy interesado en mostrar una ventana que permite al usuario realizar alguna acción y debe permitir algunas animaciones.Incluso probé PopupWindow, pero por alguna razón, mi animación personalizada no funcionaba con la ventana emergente. Espero haber aclarado mi requisito. ¿Tienes alguna sugerencia? – rajaramyadhav
Una actividad temática de diálogo se verá como una ventana emergente. Esta pregunta muestra un ejemplo de cómo se vería: http://stackoverflow.com/questions/1967085/android-how-to-resize-dialog. –