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, Android, D

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...

Groovy Grails POST/GET Requests

Just a snippet of how to do GET/POST request in Groovy Grails. try{       HttpBuilder http = new HTTPBuilder('your URL here')       def postBody = [name: 'bob', title: 'construction worker']       http.post(body: postBody,                         requestContentType: ContentType.JSON) { resp, json ->                     //This is to assume everything is successful within this                         //closure                     println "response status " + resp.statusLine                     println "json response " + json                                      } }catch(HttpResponseException ex){         //handle your errors here }