Sul mio dispositivo Android 2.2.2 la galleria è molto bella. Quello che mi piacerebbe fare nel mio app è premere un pulsante e poi mostrare un menu che assomiglia a questo: Come creare un menu di fantasia trasparente come il "menu di condivisione" nella galleria di Android?
È questo utilizzando qualsiasi Android temi/stili standard? Qualcuno sa di un codice di esempio per avere un menu come questo?
Modifica: Ho capito che si poteva imitare questo menu con una finestra di dialogo. Per semplificare le cose non sto usando un controllo ListView in questo esempio, solo una singola voce TextView per la finestra di dialogo:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
android:padding="10dp"
/>
</LinearLayout>
Mostrando la finestra quando si preme un pulsante:
Dialog dialog = new Dialog(MyActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Test option 1");
WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes();
WMLP.gravity = (Gravity.BOTTOM | Gravity.LEFT);
WMLP.x = 0;
WMLP.y = 0;
dialog.getWindow().setAttributes(WMLP);
dialog.show();
Questo crea una finestra di dialogo che si avvicina al menu nella foto. Ho ancora due problemi, tuttavia:
1) Come posso disegnare questo piccolo triangolo nella parte inferiore della finestra di dialogo, come è stato fatto nella figura sopra?
2) Il pulsante che dovrebbe aprire la finestra di dialogo è posizionato orizzontalmente nel mezzo della barra dei pulsanti in basso. Quindi quando lo premo, la finestra di dialogo dovrebbe essere visualizzata proprio sopra quel pulsante. Quello che vorrei fare è questo:
WMLP.x = middleButton.getLeft() + (middleButton.getWidth()/2) - dialog.getWindow().getDecorView().getPaddingLeft() - (WMLP.width/2);
Il problema è, che WMLP.width è -2. Immagino che il motivo sia che la larghezza del layout è impostata su "wrap_content" (che è -2) e la larghezza effettiva non è nota in questo momento. Quindi, come posso determinare la larghezza della finestra di dialogo in modo da poterla posizionare in modo concentrico su un'altra vista?
Aggiornamento: Ho finalmente trovato una grande fonte per una finestra come questa: http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/
E 'esattamente quello che volevo e lo sto usando nella mia app ora.
** Possibile duplicazione di [Modello UI Android Azioni rapide] (http://stackoverflow.com/questions/3059155/android-quick-actions-ui-pattern) e sottomenu [Condividi "Condividi"] (http://stackoverflow.com/questions/4943287/android-share-submenu)** –
@vikas È una domanda diversa della prima domanda che hai trovato. Sarebbe un duplicato della seconda domanda ma non ha una buona risposta finora. –