¿Cómo configurar el icono de cada ficha en un fragmentopageradapter a una animación gif?

Quiero establecer el icono de cada ficha en un fragmentoapagador de una animación gif. Cuando el usuario pasa a cada pestaña específica, la animación se iniciará.

Por ejemplo:

El usuario inicia la pestaña 1. Comenzará la animación de la pestaña 1. Ahora el usuario pasa a la pestaña 2. El icono de la pestaña 1 se detendrá y el icono de la pestaña 2 comenzará. El siguiente usuario pasa a la pestaña 3. El icono de la pestaña 3 se iniciará y la pestaña 1 y la pestaña 2 se pausarán .. etc etc.

MyHome.java

import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.HorizontalScrollView; import android.widget.TabHost; import android.widget.TabHost.OnTabChangeListener; import android.widget.TabHost.TabContentFactory; import java.util.List; import java.util.Vector; public class MyHome extends Fragment implements OnTabChangeListener, OnPageChangeListener { private TabHost tabHost; private ViewPager viewPager; private MyFragmentPagerAdapter myViewPagerAdapter; private String[] tabsTitles = {"About Me", "Connections", "Messages", "Open Forum", "Music", "Books", "Sports", "Title 8", "Title 9"}; private boolean flag = false; int i = 0; View v; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { ((MainActivity)getActivity()).getSupportActionBar().setTitle("Home"); v = inflater.inflate(R.layout.tabs_viewpager_layout, container, false); i++; this.initializeTabHost(savedInstanceState); this.initializeViewPager(); return v; } class FakeContent implements TabContentFactory { private final Context mContext; public FakeContent(Context context) { mContext = context; } @Override public View createTabContent(String tag) { View v = new View(mContext); v.setMinimumHeight(0); v.setMinimumWidth(0); return v; } } private void initializeViewPager() { List<Fragment> fragments = new Vector<Fragment>(); fragments.add(new Home1Fragment()); fragments.add(new Home2Fragment()); fragments.add(new Home3Fragment()); fragments.add(new Home4Fragment()); fragments.add(new Home5Fragment()); fragments.add(new Home6Fragment()); fragments.add(new Home7Fragment()); this.myViewPagerAdapter = new MyFragmentPagerAdapter(getChildFragmentManager(), fragments); this.viewPager = (ViewPager) v.findViewById(R.id.viewPager); this.viewPager.setAdapter(this.myViewPagerAdapter); this.viewPager.setOnPageChangeListener(this); //this.viewPager.setCurrentItem(4); } private void initializeTabHost(Bundle args) { tabHost = (TabHost) v.findViewById(android.R.id.tabhost); tabHost.setup(); for (int i = 1; i <= 7; i++) { TabHost.TabSpec tabSpec; tabSpec = tabHost.newTabSpec("Home " + i); //Here is where each tab is set to a particular icon from the drawable folder if(i == 1) { //tabSpec.setIndicator(""); tabSpec.setIndicator("", getResources().getDrawable(R.drawable.aboutme)); }else if(i == 2) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.connections)); }else if(i == 3) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.messages)); }else if (i == 4) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.mics)); }else if(i == 5) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.music)); }else if(i == 6) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.books)); }else if(i == 7) { tabSpec.setIndicator("",getResources().getDrawable(R.drawable.sports)); } tabSpec.setContent(new FakeContent(getActivity())); tabHost.addTab(tabSpec); } tabHost.setOnTabChangedListener(this); } @Override public void onTabChanged(String tabId) { int pos = this.tabHost.getCurrentTab(); this.viewPager.setCurrentItem(pos); HorizontalScrollView hScrollView = (HorizontalScrollView) v.findViewById(R.id.hScrollView); View tabView = tabHost.getCurrentTabView(); int scrollPos = tabView.getLeft() - (hScrollView.getWidth() - tabView.getWidth()) / 2; hScrollView.smoothScrollTo(scrollPos, 0); } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { this.tabHost.setCurrentTab(position); ((MainActivity)getActivity()).getSupportActionBar().setTitle(tabsTitles[position]); } } 

Tabs_viewpager_layout.xml

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" > <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <HorizontalScrollView android:id="@+id/hScrollView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="none"> <TabWidget android:id="@android:id/tabs" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TabWidget> </HorizontalScrollView> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout> </LinearLayout> </TabHost> </LinearLayout> 

One Solution collect form web for “¿Cómo configurar el icono de cada ficha en un fragmentopageradapter a una animación gif?”

Tendría dos trazos para cada ficha, una versión animada y una versión no animada.

Entonces registraría un oyente del cambio de la página en el ViewPager para alternar los drawables:

  viewPager.addOnPageChangeListener(new SimpleOnPageChangeListener() { @Override public void onPageSelected(int position) { if (mLastPageSelected != -1) { // check for first time switch (mLastPageSelected) { // case statements to set last tab icon to non-animated drawable } } switch (position) { // case statements to set current tab icon to animated drawable } mLastPageSelected = position; } }); 
  • Autocompletar no funciona en archivos XML en una jerarquía particular
  • Atributo "vacío" no funciona como se esperaba con SimpleFramework
  • Las sugerencias de auto de EditText están en blanco o no existen
  • Cómo cambiar el origen de ImageView en android
  • Android: uso de recursos de otro proyecto en mi área de trabajo
  • String-array dentro de string-array
  • Appcompat res values-v21 Los errores de themes_base en eclipse no desaparecen
  • fragment_display_message: Mi primer error en la aplicación para Android
  • Ancho del elemento RecyclerView layout_width = "match_parent" no coincide con el padre
  • Android: Cómo acceder a la carpeta de recursos de otra aplicación de Android
  • Logo de ActionBar mover hacia la izquierda
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.