2015-03-07 4 views
1

Я хочу манипулировать библиотекой, которую я только что обнаружил, чтобы перетащить/повернуть и зажать изображения увеличенного изображения. Я использую два источника:Как сохранить состояние пользовательского вида Android?

-The сама библиотека: MultiTouchController.java https://code.google.com/p/android-multitouch-controller/source/browse/MTController/src/org/metalev/multitouch/controller/MultiTouchController.java

-An реализация этой библиотеки: PhotoSortrViewhttps://code.google.com/p/android-multitouch-controller/source/browse/MTPhotoSortr/src/org/metalev/multitouch/photosortr/PhotoSortrView.java

-an пример Activity который реализует этот источник:

public class PhotoSortrActivity extends Activity { 

    PhotoSortrView photoSorter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      this.setTitle(R.string.instructions); 
      photoSorter = new PhotoSortrView(this); 
      setContentView(photoSorter); 
    } 

    @Override 
    protected void onResume() { 
      super.onResume(); 
      photoSorter.loadImages(this); 
    } 

    @Override 
    protected void onPause() { 
      super.onPause(); 
      photoSorter.unloadImages(); 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { 
        photoSorter.trackballClicked(); 
        return true; 
      } 
      return super.onKeyDown(keyCode, event); 
    } 

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

Как я могу сделать Activity информацию о состоянии изображений? (Конкретная проблема в моем случае в том, что это пользовательский вид)

Вот пример того, что я хочу, активность вспомнить, а затем сброс внесенное активность после вызова снова: Here is an example of what I want the Activity to remember:

Here is the Activity after I recall it:

+0

Лучше разместите снимок экрана, загрузите изображение где-нибудь, разместите ссылку здесь – Apurva

+0

@Apurva Я добавил несколько скриншотов. – Gannicus

ответ

0

См. Параметр savedInstanceState в onCreate()? Вы переопределяете onSaveInstanceState(), чтобы настроить пакет, который запоминает ваше состояние активности, и оно отображается в onCreate().

Теперь, если у вас возникли вопросы: как сохранить состояние активности без изменения класса PhotoSortrView; ну, вы не можете. Вам нужно будет добавить некоторый параметр состояния в loadImages(), чтобы он загружал изображения и задавал текущее изображение, и, возможно, изменил unloadImages() так, чтобы он возвращал некоторую информацию о состоянии, которую может сохранить Activity.

+0

Я не понимаю, могу ли я сделать то, что хочу, только переопределив 'onSaveInstanceState()' или мне нужно сделать переопределение и некоторые изменения в классе 'PhotoSortrView'? – Gannicus

+0

Поскольку интерфейс для PhotoSortrView не предоставляет никакого способа настройки изображений после их загрузки, вам необходимо внести некоторые изменения в PhotoSortrView, чтобы передать информацию о состоянии между PhotoSortrView и Activity, а также переопределить onSaveInstanceState(). –

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