Android Open Source - PagedHeadListView Paged Head Indicator






From Project

Back to project page PagedHeadListView.

License

The source code is released under:

Apache License

If you think the Android project PagedHeadListView listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.jorgecastilloprz.pagedheadlistview.components;
//from w ww .  ja v a 2 s  .c o m
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AbsListView;
import android.widget.LinearLayout;

import com.jorgecastilloprz.pagedheadlistview.R;
import com.jorgecastilloprz.pagedheadlistview.utils.DisplayUtils;

/**
 * Created by jorge on 5/08/14.
 */
public class PagedHeadIndicator extends AbstractPagedHeadIndicator {

    private View indicatorView;
    private Context context;
    private int lastPageOffset = 0;
    private int screenWidthPixels;

    public PagedHeadIndicator(Context context) {
        super(context);
        this.context = context;
        init();
    }

    public PagedHeadIndicator(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.context = context;
        init();
    }

    public PagedHeadIndicator(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.context = context;
        init();
    }

    @Override
    public void init() {

        screenWidthPixels = DisplayUtils.getScreenWidthPixels(context);

        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(LayoutParams.MATCH_PARENT, getResources().getDimensionPixelSize(R.dimen.indicator_height));
        setLayoutParams(layoutParams);

        setBackgroundColor(getResources().getColor(R.color.material_blue)); //default indicator bg color

        addIndicatorView();
    }

    private void addIndicatorView() {
        LinearLayout.LayoutParams indicatorParams = new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT);

        indicatorView = new View(context);
        indicatorView.setBackgroundColor(getResources().getColor(R.color.material_light_blue)); //default indicator color

        addView(indicatorView, indicatorParams);
    }

    @Override
    public void addPage() {
        pageCount++;
        recalculateIndicatorWidth();
    }

    /**
     * Recalculates indicator width each time a new page is added to the pager
     */
    private void recalculateIndicatorWidth() {
        int newWidth = screenWidthPixels / pageCount;
        LayoutParams indicatorParams = (LayoutParams) indicatorView.getLayoutParams();
        indicatorParams.width = newWidth;
        indicatorView.setLayoutParams(indicatorParams);
    }

    @Override
    public void setBgColor(int bgColor) {
        setBackgroundColor(bgColor);
    }

    @Override
    public void setColor(int indicatorColor) {
        indicatorView.setBackgroundColor(indicatorColor);
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        int relativePositionOffset = 0;
        if (pageCount != 0) {
            relativePositionOffset = indicatorView.getWidth() * position + positionOffsetPixels / pageCount;
        }

        if (positionOffset != 0) {
            LayoutParams indicatorParams = (LayoutParams) indicatorView.getLayoutParams();
            indicatorParams.leftMargin = relativePositionOffset;
            indicatorView.setLayoutParams(indicatorParams);
        }
    }

    @Override
    public void onPageSelected(int position) {

    }

    @Override
    public void onPageScrollStateChanged(int state) {

    }
}




Java Source Code List

com.jorgecastilloprz.pagedheadlistview.ApplicationTest.java
com.jorgecastilloprz.pagedheadlistview.PagedHeadListView.java
com.jorgecastilloprz.pagedheadlistview.adapters.ViewPagerAdapter.java
com.jorgecastilloprz.pagedheadlistview.components.AbstractPagedHeadIndicator.java
com.jorgecastilloprz.pagedheadlistview.components.PagedHeadIndicator.java
com.jorgecastilloprz.pagedheadlistview.fragments.DummyFragment.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.AccordionPageTransformer.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.DepthPageTransformer.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.FlipPageTransformer.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.RotationPageTransformer.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.ScalePageTransformer.java
com.jorgecastilloprz.pagedheadlistview.pagetransformers.ZoomOutPageTransformer.java
com.jorgecastilloprz.pagedheadlistview.testapp.MainActivity.java
com.jorgecastilloprz.pagedheadlistview.testapp.adapters.MockListAdapter.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.BottomIndicatorFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.ColdplayFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.TopIndicatorFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ColdPlayHeaderFragment1.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ColdPlayHeaderFragment2.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ColdPlayHeaderFragment3.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ColdPlayHeaderFragment4.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ColdPlayHeaderFragment5.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.FifthHeaderFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.FirstHeaderFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.FourthHeaderFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.SecondHeaderFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.fragments.headerfragments.ThirdHeaderFragment.java
com.jorgecastilloprz.pagedheadlistview.testapp.utils.FragmentTypes.java
com.jorgecastilloprz.pagedheadlistview.utils.DisplayUtils.java
com.jorgecastilloprz.pagedheadlistview.utils.IndicatorTypes.java
com.jorgecastilloprz.pagedheadlistview.utils.PageTransformerTypes.java
testapp.pagedheadlistview.jorgecastilloprz.com.pagedheadlistview.ApplicationTest.java