2016-05-17 8 views

Antwort

0

Ich bevorzuge die modale Ansicht, um ein Dialogfeld zu sein, es ist einfacher, das ausgewählte Element zu erhalten, indem Sie einen Rückruf festlegen. Ich bin wirklich kein großer Fan von onActivityResult. So ist die Lösung ist ganz einfach:

  1. eine DialogFragment erstellen und setzen Sie die Schwerkraft Gravity.Bottom und es volle Bildschirmbreite macht durch seine Einstellung Größe in DialogFragment#onStart:
 

    DisplayMetrics dm = new DisplayMetrics(); 
    getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); 
    getDialog().getWindow().setLayout(dm.widthPixels, (int) (dm.heightPixels * 0.7f)); 
    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(0xffffff)); 

  1. Führen Sie eine Animation in der Inhaltsansicht der Aktivität aus. Aber es gibt einen schwarzen Hintergrund, also müssen wir einen Container erstellen, um den schwarzen Hintergrund (# 000000) zu setzen und dann die reale Inhaltsansicht mit cooler Animation zu skalieren.
 
    - layout 
     - container(#000000) 
     - real content view(to perform scale animation) 
0

Sie können mit Theme.Dialog machen Aktivität, und starten Sie es wie diese

startActivity(intent); 
overridePendingTransition(R.anim.scale_z, R.alpha); 

Mit google Informationen über das Schreiben von Animationen zu suchen.

Andere Methode ist nur erhalten Root-Ansicht der Aktivität und skalieren sie, wenn Dialog geöffnet wird.