Android: ShowCase Mostrar sólo una vez y repetir la animación

Estoy usando la biblioteca ShowCase View en mis fragmentos. Muestro una animación gestual que debe repetirse hasta que el usuario presione el botón OK. Pero sólo se muestra una vez.

También el escaparate se muestra cada vez que el fragmento se crea y no sólo una vez.

Mi código se ve así:

public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //get display size for slide over screen Display display = getActivity().getWindowManager().getDefaultDisplay(); Point p = new Point(); display.getSize(p); if(!is_tablet()){ // ShowView Tutorial if on smartphone ViewTarget target = new ViewTarget(getView()); ShowcaseView.ConfigOptions co = new ShowcaseView.ConfigOptions(); //can only dismiss by button click co.hideOnClickOutside = false; //show only once co.shotType = ShowcaseView.TYPE_ONE_SHOT; sv = ShowcaseView.insertShowcaseView(target, getActivity(), R.string.showcase_detail_title, R.string.showcase_detail_message,co); // remove circle sv.setShowcaseIndicatorScale(0); // set black background sv.setBackgroundColor(getResources().getColor(R.color.black)); // make background a bit transparent sv.setAlpha(0.9f); // show PullToRefreshGesture sv.animateGesture(0, py / 2, px, py / 2); } 

El diseño utilizado:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <mypackage.PullToRefresh.PullToRefreshListView android:id="@id/android:list" android:layout_height="match_parent" android:layout_width="match_parent" android:divider="@android:color/transparent" android:dividerHeight="10dp" android:layout_margin="10dp"/> </LinearLayout> 

Lo resolví de esta manera:

  1. Para ejecutarlo sólo una vez después de la instalación he seguido este post .
  2. Para repetir la animación he utilizado el código proporcionado en este post .

Ahora, el ShowcaseView sólo aparece una vez después de la instalación y la animación de gestos se muestra siempre que no se haga clic en el botón.

  /** * Set the ShowcaseView to only ever show once. * * @param shotId a unique identifier (<em>across the app</em>) to store * whether this ShowcaseView has been shown. */ public Builder singleShot(long shotId) { showcaseView.setSingleShot(shotId); return this; } 

Para repetir la animación con los tiempos:

 sv.setRepeatCount(number); 

Para infinito:

 sv.setRepeatCount(Animation.INFINITE); sv.setRepeatMode(Animation.INFINITE); 

Y en su diseño:

 android:repeatMode="reverse" 
  • ¿Cómo obtener la vista de ActionBar?
  • Android Studio no puede resolver los símbolos del módulo AAR importado
  • Gravedad del texto de la vista del escaparate
  • Android ShowcaseView Color del texto
  • Uso de ShowcaseView con la aplicación v7 appcompat ActionBar
  • Superponer imagen para hacer tutorial en la aplicación para Android
  • ¿Cómo puedo importar ShowcaseView en Eclipse?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.