When Android Lollipop was released, I was excited. Who wouldn’t? Every new version always comes packed with new features and enhancements.

Sad to say when I upgraded to Lollipop it gave my app problems instead. Two things my app used, an XML drawable that displays a radial gradient effect and an animated inside an AsyncTask class that uses Thread.sleep in between.

So first, the radial drawable.

I had a custom color and named it theme_green. It worked okay in previous versions but in Lollipop 5.0, the radial effect does not work anymore, and so does the color. It seems like only the startColor is used hence the different color result.

The other issue I had was the Thread.sleep inside the doInBackground() where I had a for loop that shows an animated and used the Thread.sleep to simulate a pause in between animation.

The result was that the animated got slow. I had to switch to using a TimerTask instead to preserve the smoothness of the animated that was working prior to Lollipop 5.0.

Oh, and even SystemClock.sleep() inside doInBackground() did not work either.

So there. Just to give you a heads up that you might think it is the Lollipop 5.0 operating system that is the issue. They definitely changed some things that affected how the Thread.sleep() works inside the doInBackground() method of an AsyncTask class.

In case you are wondering why your custom animations do not work when used with fragments as opposed to using them in Activity transitions, the answer is you cannot.

Google framework engineer Dianne Hackborn had this to say:

“The Z adjustment only works for window animations. I thought this was documented, but apparently not.” — Dianne Hackborn (Android framework engineer).

Here is what I have come up with an XML file for an animation transition of an activity that expands from the center most to all sides.

You may want to change the android:duration attribute value during your testing so you can see the animation clearly.

Related Posts Plugin for WordPress, Blogger...