2016-06-20 2 views
0

Я написал приложение, в котором есть экран, содержащий миниатюру, которую я хочу развернуть до полноэкранного просмотра (с панорамированием и масштабированием), когда я нажимаю на нее.Android - как вернуться к исходному экрану после setContentView (img)

Большой вид с панорамированием масштаба работает отлично, но я хочу вернуться к исходному виду, когда я нажимаю на большое изображение.

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? 

      } 
     }); 
    } 
}); 

Пробовал несколько вещей без успеха!

+1

Просто добавьте еще один вызов setContentView (R. ); –

ответ

0

Только оригинальный наборContentView (R.layout.main) вернет его.

Возможно, было бы лучше иметь ImageView в макете xml и установить его изображение, показать и скрыть его. В противном случае вы застряли только с одним видом, которое может быть ограничено.

Когда вы выполните setContentView, его инициализируйте свою активность этим контентом. Поэтому, если вы хотите просто положить что-то сверху, вы можете просто иметь скрытый вид. В вашем макете xml-кода создайте представление изображения, которое находится поверх всех других представлений. Затем установите его видимость = «ушел», поэтому он скрыт. Затем в вашем onClick вместо вызова setContentView просто установите растровое изображение, как и вы, и вызовите imgBig.setVisibility (View.Gone или View.Visible), чтобы показать или скрыть ваше большое изображение.

Другая возможность состоит из двух видов деятельности. И позвоните startActivity, чтобы показать свое большое изображение, а затем закончить, чтобы вернуться к другому действию, как это было.

Другая возможность заключается в использовании фрагментов, но это, вероятно, более активное участие.

+0

Это восстанавливает исходный вид макета, но я заполнил его данными перед вызовом setContentView(). то, что я хотел сделать, это вернуться на полностью заполненный экран - т. е. каким-то образом сохранить состояние перед вызовом? – markysparky

+0

обновил свой ответ для вас. – Marc

+0

Отлично, работает. – markysparky

Смежные вопросы