E 'possibile avere solo un'immagine popup/comparsa in un'applicazione Android? È simile a un override della normale visualizzazione di un AlertDialog in modo che contenga solo un'immagine e nient'altro.Finestra di dialogo Immagine Android/Popup
SOLUZIONE:Sono stato in grado di trovare una risposta grazie all'aiuto di @ blessenm. Mascherare un'attività come una finestra di dialogo sembra essere il modo ideale. Quello che segue è il codice che ho usato. Questa attività finestra in stile può essere invocata come necessaria per l'applicazione allo stesso modo in cui una nuova attività sarebbe iniziata
ImageDialog.java
public class ImageDialog extends Activity {
private ImageView mDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_dialog_layout);
mDialog = (ImageView)findViewById(R.id.your_image);
mDialog.setClickable(true);
//finish the activity (dismiss the image dialog) if the user clicks
//anywhere on the image
mDialog.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
your_dialog_layout.xml
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_dialog_root"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:gravity = "center">
<ImageView
android:id="@+id/your_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src = "@drawable/your_image_drawable"/>
</FrameLayout>
È fondamentale impostare lo stile seguente per l'attività per ottenere ciò:
styles.xml
<style name="myDialogTheme" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:windowFrame">@null</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Il passo finale è quello di dichiarare questo stile per l'attività nel manifesto come segue:
<activity android:name=".ImageDialog" android:theme="@style/myDialogTheme" />
perchè usando un'attività di dialogo stile e non una finestra di dialogo in sé a fare la funzionalità di cui sopra. Qualche ragione specifica per questo, o solo una scelta di design? – Avijeet
@Avijeet è una domanda valida, l'obiettivo era mostrare un'immagine fluttuante - questo era qualche anno fa, però, quando la personalizzazione della vista non era così diffusa. Quindi, aveva senso avere un'attività in stile come un dialogo. Con il senno di poi, avrei potuto usare un 'PopupWindow' o aver ruotato la mia vista personalizzata – Abhijit