Skip to main content

Android Animations in Android 5.0 / AppCompat

View Animation
View animation has never been more fun in Android 4 and above. With Android 5.0 Lollipop, more fun animations can be done by using the ActivityOptions or ActivityOptionsCompat (in AppCompat).

ViewCompat allows you to animate all sorts of animation types with start delays and other neat stuff. One example that returns a ViewPropertyAnimatorCompat object.

 ViewCompat.animate(view).setDuration(1000).scaleYBy(1).scaleXBy(1).start();


View Elevation
We all know that setting elevation is not possible in Android 4.+. You can either apply your own drawable shadow to simulate that effect, or you can use the support library to do the following:

ViewCompat.setElevation(getResources().getDimensionPixelSize(R.dimen.drawable_elevation));


Activity Transitions
If you wanna animate an item only for the activity transition,
a. In Activity A,

ActivityOptionsCompat options =
                ActivityOptionsCompat.makeSceneTransitionAnimation(context,
                        view,
                        R.string.transition_name
                );
        ActivityCompat.startActivity(getActivity(), intent, options.toBundle());


b. In activity B, 

ViewCompat.setTransitionName(view,  getString(R.string.transition_name));


If you wanna animate three things at the same time during activity transitions,
a. In activity A, 

Pair<View, String> pair1 = Pair.create(view1, getString(R.string.transition1));
Pair<View, String> pair2 = Pair.create(view2, getString(R.string.transition1));
Pair<View, String> pair3 = Pair.create(view3, getString(R.string.transition1));

Pair<View, String>[] pairs = new Pair[]{pair, pair2, pair3};
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(context, pairs);
                ActivityCompat.startActivity(context, intent, options.toBundle());

b. In Activity B,

ViewCompat.setTransitionName(view1,  getString(R.string.transition_name));
ViewCompat.setTransitionName(view2,  getString(R.string.transition_name));
ViewCompat.setTransitionName(view3,  getString(R.string.transition_name));


This is what I've used so far. Custom animations can be done using ViewCompat, but it's up to you to explore more. I'm still in the middle of exploring as well. Good luck.

Comments

  1. This comment has been removed by the author.

    ReplyDelete
  2. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
    Surya Informatics

    ReplyDelete

Post a Comment

Popular posts from this blog

Setting Up Android CheckStyle in Android Studio

So we all want to abide by the Android Code Style Guidelines shown in the official Android developer website here . How do we get started by helping ourselves by abiding by the Java and Android code style rules? Simple. Set it in Android Studio with the instructions below:  1. Copy the file in  https://github.com/android/platform_development/blob/master/ide/intellij/codestyles/AndroidStyle.xml 2. Paste the file into ~/.AndroidStudioPreview/config/codestyles/ (in Ubuntu) or ~/Library/Preferences/AndroidStudioPreview/codestyles (in Mac OS X) 3. Go to Settings (or Preferences in Mac OS X) > Code Style > Java, select AndroidStyle, as well as Code Style > XML and select AndroidStyle. 4. Start code inspection and see the results by selecting Analyze > Inspect Code. You will see the results of inspection on the Inspection pane at the bottom and and you will notice things that you can improve in your Java code such as Code Style Issues, A...

How To Reset Android Studio on Mac

Just in case you guys have trouble starting Android Studio for some unknown reason such as clearing the Mac OS cache using a third party tool, these are the steps to troubleshoot the problem. Step 1: Close Android Studio. Step 2: Remove all the directories that are related to Android Studio ~/Library/Application Support/AndroidStudioBeta ~/Library/Caches/ AndroidStudioBeta ~/Library/Logs/ AndroidStudioBeta ~/Library/Preferences/ AndroidStudioBeta Step 3: Start Android Studio Simple as that...

How to Utilize the onUpgrade method in your SqliteOpenHelper Class in Android

Based on this website's blogpost on how to non-destructively upgrade your Android app's database , I've encountered a scenario such as this: 1. I have a database which has a database version 1 which has an existing table being constructed in user's phones. 2. If I were to have a new column in my database table, if I were to deploy the new version of the app into the Google Play Store (what I mean here is an incremental install), of course I would have users bitching about force closes in my app because the database is altered, for instance by adding another column in my database table. The blogpost is helpful as he highlighted how database table alteration can be done by incrementing the database version and onUpgrade method is triggered in your SqliteOpenHelper class.