package cn.lightsky.infiniteindicator;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import java.util.ArrayList;
import cn.light.sky.infiniteindicatordemo.R;
import static cn.lightsky.infiniteindicator.IndicatorConfiguration.LEFT;
public class AnimIndicatorActivity extends FragmentActivity implements ViewPager.OnPageChangeListener, OnPageClickListener {
private ArrayList<Page> pageViews;
private InfiniteIndicator mAnimCircleIndicator;
private InfiniteIndicator mAnimLineIndicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_anim_indicator);
initData();
testAnimCircleIndicator();
testAnimLineIndicator();
}
private void initData() {
pageViews = new ArrayList<>();
// pageViews.add(new Page("A ", "https://raw.githubusercontent.com/lightSky/InfiniteIndicator/master/res/a.jpg", this));
// pageViews.add(new Page("B ", "https://raw.githubusercontent.com/lightSky/InfiniteIndicator/master/res/b.jpg", this));
// pageViews.add(new Page("C ", "https://raw.githubusercontent.com/lightSky/InfiniteIndicator/master/res/c.jpg", this));
// pageViews.add(new Page("D ", "https://raw.githubusercontent.com/lightSky/InfiniteIndicator/master/res/d.jpg", this));
pageViews.add(new Page("A", R.drawable.a, this));
pageViews.add(new Page("B", R.drawable.b, this));
pageViews.add(new Page("C", R.drawable.c, this));
pageViews.add(new Page("D", R.drawable.d, this));
}
//To avoid memory leak ,you should release the res
@Override
protected void onPause() {
super.onPause();
mAnimCircleIndicator.stop();
mAnimLineIndicator.stop();
}
@Override
protected void onResume() {
super.onResume();
mAnimCircleIndicator.start();
mAnimLineIndicator.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent intent = new Intent(this, DefaultCircleIndicatorActivity.class);
startActivity(intent);
return true;
}
private void testAnimCircleIndicator() {
mAnimCircleIndicator = (InfiniteIndicator) findViewById(R.id.infinite_anim_circle);
IndicatorConfiguration configuration = new IndicatorConfiguration.Builder()
.imageLoader(new UILoader())
.isStopWhileTouch(true)
.onPageChangeListener(this)
.onPageClickListener(this)
.direction(LEFT)
.position(IndicatorConfiguration.IndicatorPosition.Center)
.build();
mAnimCircleIndicator.init(configuration);
mAnimCircleIndicator.notifyDataChange(pageViews);
mAnimCircleIndicator.setCurrentItem(2);
}
private void testAnimLineIndicator() {
mAnimLineIndicator = (InfiniteIndicator) findViewById(R.id.infinite_anim_line);
IndicatorConfiguration configuration = new IndicatorConfiguration.Builder()
.imageLoader(new PicassoLoader())
.isAutoScroll(false)
.isStopWhileTouch(true)
.onPageChangeListener(this)
.position(IndicatorConfiguration.IndicatorPosition.Center)
.build();
mAnimLineIndicator.init(configuration);
mAnimLineIndicator.notifyDataChange(pageViews);
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// Toast.makeText(this,"page selected"+position,Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void onPageClick(int position, Page page) {
Toast.makeText(this, " click page --- " + position, Toast.LENGTH_SHORT).show();
}
}