package com.grosner.sample.changingactionbar; import android.support.v4.view.ViewPager; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import com.grosner.painter.actionbar.ActionBarColorSlider; import com.grosner.sample.R; public class ChangingActionBarActivity extends ActionBarActivity implements ViewPager.OnPageChangeListener { private ChangingActionBarAdapter mAdapter; private ActionBarColorSlider mActionbarColorSlider; private int mPosition; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_changing_action_bar); ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(mAdapter = new ChangingActionBarAdapter()); viewPager.setOnPageChangeListener(this); mActionbarColorSlider = new ActionBarColorSlider(getSupportActionBar(), mAdapter.getColor(0), mAdapter.getColor(1)); } @Override public void onPageScrolled(int position, float slideOffset, int i2) { if(mPosition!=position){ int prevPosition = mPosition; mPosition = position; int change = ((prevPosition>mPosition) ? -1:1); if(change<-1){ mActionbarColorSlider.setStartColor(getSupportActionBar(), mAdapter.getColor(position-1)); mActionbarColorSlider.setEndColor(mAdapter.getColor(position)); } else { mActionbarColorSlider.setStartColor(getSupportActionBar(), mAdapter.getColor(position)); mActionbarColorSlider.setEndColor(mAdapter.getColor(position + 1)); } } mActionbarColorSlider.onSlide(slideOffset); } @Override public void onPageSelected(int i) { } @Override public void onPageScrollStateChanged(int i) { } }