Android: transizione attività / animation in ActivityGroup

Utilizzo ActivityGroup per gestire le attività, voglio aggiungere animation quando l'attività di modifica, il codice che ho usato per passare all'attività successiva è:

Intent intent = new Intent(getParent(), AnotherActivity.class); TabGroupActivity parentActivity = (TabGroupActivity) getParent(); parentActivity.startChildActivity("AnotherActivity", intent); 

E all'interno di startChildActivity :

  • Come get la window di dialogo di crash con il button report
  • CursorAdapter bindView ottimizzazione
  • Perché il mio servizio non funziona in Android? (Voglio solo registrare qualcosa di mai 5 secondi)
  • Errore di Android ListViewAdapter di Android
  • come creare file xml in android
  • Ampiezza di navigazione dell'elenco delle barre di azione - avvolgere il contenuto
  •  Window window =getLocalActivityManager().startActivity(Id,intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)); if (window != null) { View view = window.getDecorView(); mIdList.add(Id); setContentView(view); } 

    TabGroupActivity è solo un ActivityGroup , fornisce alcuni methods utili. Con il codice precedente, cosa / where aggiungo per triggersre l'animation?

  • Android Google+ non è in grado di get il codice di authorization
  • IBM Worklight - "Purtroppo HelloWorkLight si è arrestato" messaggio di errore
  • Impostazione del colore dell'intestazione di app nella schermata Panoramica (applicazioni recenti)
  • Button Android o TextView Border in modo programmato senza utilizzare il metodo setBackgroundDrawable
  • Striscia di sfumatura OpenGL su Android
  • Cordova Build Gradle Errore durante l'apertura / estrazione del file zip
  • One Solution collect form web for “Android: transizione attività / animation in ActivityGroup”

    Ho dovuto implementare la procedura guidata con le transizioni della pagina qualche volta fa. E ho usato l'approccio ActivityGroup. Aveva Wizard (ereditato da AcitivtyGroup ) e WizardPage (ereditato da Activity ). WizardPage aveva codice che gestiva le animazioni, mentre la Wizard era responsabile di call quelle animazioni in tempi appropriati.

    Classe WizardPage :

     /** * Called to animate appearance of this activity * as if somebody clicked next on previous activity * and ended up to this activity. * * Animation: <---- */ void onAnimateOpenAsNext() { animateTransition(android.R.attr.activityOpenEnterAnimation); } /** * Called to animate appearance of this activity * as if somebody clicked back on previous activity * and ended up to this activity. * * Animation: ----> */ void onAnimateOpenAsPrev() { animateTransition(android.R.attr.activityCloseEnterAnimation); } /** * Called to animate disappearance of this acitivity * when "next" button was clicked * * Animation: <-- */ void onAnimateCloseOnNext() { animateTransition(android.R.attr.activityOpenExitAnimation); } /** * Called to animate disappearance of this activity * when "prev" button was clicked * * Animation: --> */ void onAnimateCloseOnPrev() { animateTransition(android.R.attr.activityCloseExitAnimation); } private void animateTransition(int animAttributeId) { TypedValue animations = new TypedValue(); Theme theme = this.getTheme(); theme.resolveAttribute(android.R.attr.windowAnimationStyle, animations, true); TypedArray animationArray = obtainStyledAttributes(animations.resourceId, new int[] {animAttributeId}); int animResId = animationArray.getResourceId(0, 0); animationArray.recycle(); if(animResId != 0) { try { Animation anim = AnimationUtils.loadAnimation(this, animResId); getWindow().getDecorView().startAnimation(anim); } catch(Resources.NotFoundException ex) { //didn't find animation resource, ignore error } } } 

    Wizard aveva il metodo startPage che è stato chiamato per rendere effettive le transizioni di attività:

     public void startPage(int i) { int prevIndex = getCurrentPageIndex(); m_pageIndex = i; WizardPage currentPage = getCurrentPage(); if(currentPage != null) { if(prevIndex <= i) { currentPage.onAnimateCloseOnNext(); } else { currentPage.onAnimateCloseOnPrev(); } } LocalActivityManager manager = getLocalActivityManager(); m_startingActivity = true; Window activityWindow = manager.startActivity(Integer.toString(i), m_pageIntens.get(i)); m_startingActivity = false; setContentView(activityWindow.getDecorView()); currentPage = getCurrentPage(); if(currentPage != null) { if(prevIndex <= i) { getCurrentPage().onAnimateOpenAsNext(); } else { getCurrentPage().onAnimateOpenAsPrev(); } } } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.