2016-06-20 4 views
0

Ich habe eine App geschrieben, die eine Bildschirmansicht enthält, die eine Miniaturansicht enthält, die ich auf Vollbildansicht (mit Schwenken und Zoomen) erweitern möchte, wenn ich darauf klicke.Android - Wie man zur ursprünglichen Bildschirmansicht zurückkehrt nach setContentView (img)

Die große Ansicht mit Schwenk und Zoom funktioniert gut, aber ich möchte auf die ursprüngliche Ansicht zurückkehren, wenn ich auf das große Bild klicke.

final TouchImageView imgBig = new TouchImageView(Dashboard.this); 
final ImageView img = (ImageView) findViewById(R.id.graph); 
final Bitmap bitmap = result.getImage(); 

img.setImageBitmap(bitmap); 
img.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     imgBig.setImageBitmap(bitmap); 
     imgBig.setMaxZoom(4f); 
     setContentView(imgBig); 
     imgBig.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

      // What do I need to do here to return to original thumbnail screen view? 

      } 
     }); 
    } 
}); 

Habe eine Reihe von Dingen ohne Erfolg versucht!

+1

Fügen Sie einfach setContentView einen weiteren Aufruf hinzu (R. ); –

Antwort

0

Nur die ursprüngliche setContentView (R.layout.main) wird es zurückstellen.

Es könnte besser sein, ein ImageView im Layout-XML zu haben und sein Image zu setzen und es ein- und auszublenden. Sonst stecken Sie nur mit einer Ansicht fest, die einschränkend sein kann.

Wenn Sie eine setContentView erstellen, wird Ihre Aktivität mit diesem Inhalt initialisiert. Wenn Sie also nur etwas darüber legen möchten, könnten Sie einfach eine versteckte Sicht haben. Erstellen Sie in Ihrem Layout-XML-Code eine Bildansicht, die über allen anderen Ansichten liegt. Setzen Sie dann seine Sichtbarkeit = "gegangen", so dass es versteckt ist. Dann in Ihrem onClick, anstatt setContentView aufzurufen, setzen Sie einfach die Bild-Bitmap wie Sie und rufen Sie imgBig.setVisibility (View.Gone oder View.Visible) auf, um Ihr großes Bild ein- oder auszublenden.

Eine andere Möglichkeit ist, 2 Aktivitäten zu haben. Und rufe startActivity auf, um dein großes Image zu zeigen und dann zu beenden, um zu der anderen Aktivität zurückzukehren, so wie sie war.

Eine andere Möglichkeit ist die Verwendung von Fragmenten, aber das ist wahrscheinlich komplizierter.

+0

Das stellt die ursprüngliche Layoutansicht wieder her, aber ich hatte es vor dem setContentView() - Aufruf mit Daten gefüllt. was ich tun wollte, war, zu dem vollständig gefüllten Bildschirm zurückzukehren - d. h. irgendwie den Zustand vor dem Anruf zu speichern? – markysparky

+0

aktualisierte meine Antwort für Sie. – Marc

+0

Das ist toll - funktioniert gut. – markysparky

Verwandte Themen