Sto cercando di creare una finestra di dialogo personalizzata in Android. Ma qualunque cosa ho provato a fare, non sono in grado di modificare la larghezza della finestra di dialogo. Rimane solo lo stesso. La seguente è la vista che sto impostando come contenuto per la finestra di dialogo.Creazione di una finestra di dialogo personalizzata in 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>
Come potete vedere, ovunque sto usando wrap_content in questo esempio di codice. Inoltre ho provato le seguenti opzioni
1) Impostazione di uno stile personalizzato durante la creazione della finestra di dialogo come questa.
dialog = new Dialog(this,R.style.Theme_Dialog);
E lo stile come segue
<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) Impostazione dei parametri per la visualizzazione nella onCreateDialog() Ti piace questa
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) Ho anche cercato di impostare la finestra parametri come questo nel metodo onCreateDialog()
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width=WindowManager.LayoutParams.WRAP_CONTENT;
dialog.getWindow().setAttributes(params);
Ma ancora nessuna fortuna. Qualcuno può aiutarmi con questo problema. Sto facendo qualcosa di sbagliato?? Puoi anche suggerirmi come impostare le posizioni x e y per la finestra di dialogo?
Grazie
Grazie per la tua risposta. Il mio problema è che lo voglio più come una finestra pop-up. Invece di usare l'intera larghezza dello schermo, voglio solo che consumi solo la larghezza richiesta per mantenere la vista. E non sto avviando un'attività separata in quella finestra di dialogo. Sono interessato a mostrare una finestra che consente all'utente di eseguire alcune azioni e dovrebbe consentire alcune animazioni.Ho anche provato PopupWindow ma per qualche ragione, la mia animazione personalizzata non funzionava con la finestra popup. Spero di aver chiarito la mia richiesta. Hai qualche suggerimento? – rajaramyadhav
Un'attività a tema di dialogo apparirà come una finestra a comparsa. Questa domanda mostra un esempio di come sarebbe: http://stackoverflow.com/questions/1967085/android-how-to-resize-dialog. –