Walker

Additional

Language
Java
Version
N/A
Created
Mar 23, 2016
Updated
Mar 23, 2016 (Retired)
Owner
goka (gotokatsuya)
Contributor
goka (gotokatsuya)
1
Activity
Badge
Generate
Download
Source code

walker

Easy to create cool walkthrough page.

Inspired by BWWalkthrough.

Usage

Page

public class PageFragment extends WalkerFragment {

    public static final String TAG = PageFragment.class.getSimpleName();

    public static final int PAGE_POSITION = 0;

    private WalkerLayout walkerLayout;

    public static PageFragment newInstance() {
        Bundle args = new Bundle();
        PageFragment fragment = new PageFragment();
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.page, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        walkerLayout = (WalkerLayout) view.findViewById(R.id.walker);

        // Adjust speed
        walkerLayout.setSpeed(new PointF(1.0f, 0.0f));
        walkerLayout.setSpeedVariance(new PointF(1.2f, 0.0f));

        // Enable alpha
        walkerLayout.setEnableAlphaAnimation(true);

        // Basic animate (Linear, Curve, Zoom, InOut)
        walkerLayout.setAnimationType(WalkerLayout.AnimationType.InOut);

        // Custom animation
        walkerLayout.setAnimationType(WalkerLayout.AnimationType.Custom);
        walkerLayout.setCustomAnimationListener(new WalkerLayout.CustomAnimationListener() {
            @Override
            public void animate(int index, float offset, WalkerLayout.Direction direction) {
                View child = walkerLayout.getChildAt(index);
                String tag = String.valueOf(child.getTag());
                switch (tag) {
                    case "1":
                        child.setRotation((180.0f) * (1.0f - offset));
                        break;
                    case "2":
                        child.setTranslationX(0.0f);
                        child.setTranslationY((1.0f - offset) * 200);
                        break;
                }
            }
        });

        // Tag list that view does not animate.
        walkerLayout.setIgnoredViewTags(Arrays.asList("1", "2"));

        // Setup layout (MUST call
        walkerLayout.setup();
    }

    @Override
    protected int getPagePosition() {
        return PAGE_POSITION;
    }

    @Override
    protected WalkerLayout getWalkerLayout() {
        return walkerLayout;
    }
}

Gradle

repositories {
    jcenter()
}

dependencies {
    compile 'com.goka:walker:1.0.0'
}