Popularity
7.3
Stable
Activity
0.0
Stable
1,294
57
225

Code Quality Rank: L4
Programming language: Java
Tags: Animations    
Latest version: v1.3.3

PreLollipopTransition alternatives and similar packages

Based on the "Animations" category.
Alternatively, view PreLollipopTransition alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of PreLollipopTransition or a related project?

Add another 'Animations' Package

README

PreLollipopTransition

build status API

Simple tool which help you to implement activity and fragment transition for pre-Lollipop devices.

prelollipopanimation

Download

In your app build.gradle add

dependencies {
    compile 'com.kogitune:pre-lollipop-activity-transition:1.x.x'
}

Download

Code

Activity

Start Activity in first activity.

findViewById(R.id.imageView).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final Intent intent = new Intent(MainActivity.this, SubActivity.class);
        ActivityTransitionLauncher.with(MainActivity.this).from(v).launch(intent);
    }
});

Receive intent in second activity.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub);
    ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}

If you want the exit animation, you can do like this.

private ExitActivityTransition exitTransition;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sub2);
    exitTransition = ActivityTransition.with(getIntent()).to(findViewById(R.id.sub_imageView)).start(savedInstanceState);
}
@Override
public void onBackPressed() {
    exitTransition.exit(this);
}

If you want to use startActivityForResult, you should do below.

  1. Use createBundle().
  2. Put Extra to intent.
  3. Call overridePendingTransition after startActivityForResult.
Bundle transitionBundle = ActivityTransitionLauncher.with(MainActivity.this).from(v).createBundle();
intent.putExtras(transitionBundle);
startActivityForResult(intent, REQUEST_CODE);
// you should prevent default activity transition animation
overridePendingTransition(0, 0);

Fragment

Start fragment transition in first fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.support_fragment_start, container, false);
    v.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final EndFragment toFragment = new EndFragment();
            FragmentTransitionLauncher
                    .with(view.getContext())
                    .image(BitmapFactory.decodeResource(getResources(), R.drawable.photo))
                    .from(view.findViewById(R.id.imageView)).prepare(toFragment);
            getFragmentManager().beginTransaction().replace(R.id.content, toFragment).addToBackStack(null).commit();
        }
    });
    return v;
}

Start animation in second fragment.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.support_fragment_end, container, false);
    final ExitFragmentTransition exitFragmentTransition = FragmentTransition.with(this).to(v.findViewById(R.id.fragment_imageView)).start(savedInstanceState);
    exitFragmentTransition.startExitListening();
    return v;
}

If you want to pass argument to second fragment, you should use Fragment#getArguments() after call prepare().

final EndFragment toFragment = new EndFragment();
FragmentTransitionLauncher
        .with(view.getContext())
        .image(BitmapFactory.decodeResource(getResources(), R.drawable.photo))
        .from(view.findViewById(R.id.imageView)).prepare(toFragment);
toFragment.getArguments().putString("stringArgKey", "this is value");
getFragmentManager().beginTransaction().replace(R.id.content, toFragment).addToBackStack(null).commit();

Sample

image

Contributors

Thanks

Sample Photo Luke Ma https://www.flickr.com/photos/lukema/12499338274/in/photostream/

DevBytes: Custom Activity Animations https://www.youtube.com/watch?v=CPxkoe2MraA

License

This project is released under the Apache License, Version 2.0.


*Note that all licence references and agreements mentioned in the PreLollipopTransition README section above are relevant to that project's source code only.