Skip to content
Project that demonstrates the entire animation stack present in the Uber app (android)
Branch: master
Clone or download
mohak1712 Merge pull request #4 from kevalpatel2106/master
Fixing crash when location permission is not granted.
Latest commit a331372 Aug 31, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Fixing crash when location permission is not granted. Aug 31, 2017
.gitignore Create Aug 3, 2017
build.gradle Initial commit Jul 25, 2017
gradlew.bat Initial commit Jul 25, 2017
settings.gradle Initial commit Jul 25, 2017


Project that demonstrates the entire animation stack present in the Uber app (android)




  1. FabProgressCircle
  2. Retrofit
  3. RxAndroid
  4. ButterKnife


Transitions - For sharing elements between activities

void startTransition() {

       Intent intent = new Intent(LoginActivity.this, LoginWithPhone.class);

       Pair<View, String> p1 = Pair.create((View) ivBack, getString(R.string.transition_arrow));
       Pair<View, String> p2 = Pair.create((View) ivFlag, getString(R.string.transition_ivFlag));
       Pair<View, String> p3 = Pair.create((View) tvCode, getString(R.string.transition_tvCode));
       Pair<View, String> p4 = Pair.create((View) tvPhoneNo, getString(R.string.transition_tvPhoneNo));
       Pair<View, String> p5 = Pair.create((View) llphone, getString(R.string.transition_llPhone));

       ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(this, p1, p2, p3, p4, p5);
       startActivity(intent, options.toBundle());


ViewPagerTransformer - For performing animations when ViewPager is swiped

ViewPager.PageTransformer pageTransformer = new ViewPager.PageTransformer() {
        public void transformPage(View page, float position) {

            if (position < -1) { 

            } else if (position <= 1) { 

                   // animate here


Overlays - For creating overlays on map

 public void addOverlay(LatLng place) {

        GroundOverlay groundOverlay = mMap.addGroundOverlay(new
                .position(place, 100)


ValueAnimator - For animating overlays and polylines

ValueAnimator tAnimator = ValueAnimator.ofFloat(0, 1);
       tAnimator.setInterpolator(new LinearInterpolator());
       tAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
           public void onAnimationUpdate(ValueAnimator valueAnimator) {
              // animate here

PolyLines - For drawing lines on map

 PolylineOptions greyOptions = new PolylineOptions();
        greyOptions.startCap(new SquareCap());
        greyOptions.endCap(new SquareCap());
        greyPolyLine = mMap.addPolyline(greyOptions);

How to use this project

Add your GoogleMaps and GooglePlaces key to google_maps_api.xml and turn on direction api from developer console -> You are good to go !

You can’t perform that action at this time.