Commit Graph

22 Commits

Author SHA1 Message Date
ztenghui
d2f50c78c3 AVD: Deep copy the animator target setup when mutate.
Only calling VectorDrawable's mutate here will miss all the animator setup,
when the VectorDrawable has a new state.
So we just deep copy everything and setup the animators again.

b/18521582

Change-Id: Id164312750bb548f9c2d21cc0b5806cd2bafcf0d
2014-12-04 16:55:26 -08:00
ztenghui
5b84eace6c ASLD: ASLD's XML reversible flag can turn off the reverse behavior now.
Previously, the android:reversible flag behaves like a suggestion.
Now it is used to enforce no reverse when set to false. In this way, user can
safely setup one direction animation only.
When set to true, but AVD can't reverse , then it will show a warning.

At the same time, update the tests to show different cases, including
AnimationDrawable.

b/18413484

Change-Id: I5552c49dcbd76b0724b4d5593bce8388b27bd905
2014-11-20 14:41:33 -08:00
ztenghui
1a40facbfd AVD: Requires all animator has stopped before start again.
We should treat all the animator as a group, we should not start again unless
all the previous animations have stopped.

b/18320770

Change-Id: I5b0c2c165cd314745ee6c7152aea3c666e9dff10
2014-11-10 15:03:59 -08:00
Alan Viverette
d21fd9d1cc Add theme and config change support to more Drawable types
BUG: 16045735
Change-Id: Ic03173a1c1779c1bb545c4c389f77afed97011ee
2014-10-29 10:24:42 -07:00
Alan Viverette
17cd4dfe3a Update preload list, clean up drawable theming
Removes all implementations of three-arg ConstantState constructor, since
we handle mutation and applyTheme() in Resources now. Moves progress bar
tinting to android:tint attribute. Correctly implements applyTheme() and
canApplyTheme() in all drawable wrapper and container classes.

Change-Id: Ic9cb43d0d6228aa4914f3124bed234b837beaa41
2014-10-14 14:07:21 -07:00
Alan Viverette
727cae197b Mutate and apply theme if needed before caching themed drawables
This ensures that drawables are completely separated from their cached
constant states before applying a theme. After this, we can remove the
implicit (and incomplete) mutation in the clone constructors.

Also implements missing mutate() method on ClipDrawable.

BUG: 17646144
Change-Id: If0d66b0a85724d76e0a4f506758c7ba3c0aa3410
2014-10-07 15:08:47 -07:00
Alan Viverette
5004032ebc Fixed mutate() for RippleDrawable, ASLD, AVD, fix applyTheme in VD
BUG: 17646144
Change-Id: I58c111d86224dc8f7f557073c0bcbc22ad74aa1b
2014-09-26 10:37:30 -07:00
ztenghui
98916d146a Fix AVD for CTS failure.
Mostly about changingConfig flags, the fix is just a copy from VectorDrawable.

b/17631551

Change-Id: Ibad9c2f61cd86b15e9bca1d1991c8cd147897bb0
2014-09-23 16:07:27 -07:00
Chet Haase
6f6578e81c Use constant state in AnimatedVectorDrawable
Complex animated vector drawables can be expensive to load due to
sub-optimal parsing of the String-based pathData. Suffering that penalty
every time the same drawable is loaded (such as material-themed
ProgressBars) is painful.

The new approach caches constant state of both the VectorDrawable (including
the pathData geometry) and the animators (which includes potentially expensive
path-based interpolators).

issue #17366831 Material ProgressBar taking 200+ms to inflate

Change-Id: Iba3b541e24cfce8c07f5aa9fe6aa7d7b92b2fe1c
2014-09-10 21:21:53 +00:00
George Mount
fd3c4744f2 Use intrinsic size for path animation in AnimatedVectorDrawable
Bug 16984007

Animated Vector Drawables were using the viewport dimensions for
calculating the allowable animation error. Instead of using viewport
dimensions, it is better to use the intrinsic dimensions. Using
the viewport dimensions meant that a small viewport (e.g. 1x1)
would mean that animation paths within would only have an accuracy
of 50% of the dimensions of the drawable.

Change-Id: Id0152eabb4effd1e50c644eea7a371b38baeb7c1
2014-09-09 17:09:57 -07:00
ztenghui
a94900e587 Merge "Fixing AVD animation with startOffset" into lmp-dev 2014-08-22 20:23:24 +00:00
ztenghui
14aedd1fbf Fixing AVD animation with startOffset
b/17160751

Change-Id: If030ca04f5a7dd7e732dcc5dfb18d51faa7e7b79
2014-08-22 12:41:06 -07:00
Alan Viverette
06cd7dce24 Forward additional drawable methods in AVD
BUG: 17156349
Change-Id: I1d7b41fc8d0399b31db4cf21aa47180e96bfbcfe
2014-08-20 13:44:44 -07:00
ztenghui
06eaf193bd End the animator when stop() is called
bug:16830053

Change-Id: If27ba904b0f78ee8c59df3522a97f5f86509ca0e
2014-08-06 21:23:08 +00:00
ztenghui
a95c8abb36 API REVIEW: VectorDrawable
- Merge <size> and <viewport> attributes all in to top-level <vector> tag
- Indent attributes under <group> in java doc.
- Updata android:stroke to be android:strokeColor, likewise android:fill
- Instead of android:clipToPath, make this a different clip-path tag.
- Document units of the various attributes
- Add example code for defining a VectorDrawable resource

More than that:
= Refactor the code to better support clipPath as a sub-class.
= Update all the xml files to use the new attributes and clip-path tag.

TODO:
-- Remove clipToPath, since that should happen on build break Friday.

bug:16488254

Change-Id: I6db5680ef83cb26c8f064a60fc7d6e7142974b0f
2014-07-25 23:26:41 +00:00
ztenghui
7bc6a3f023 Add more reverse support to AnimatedVD
bug:16162242

Change-Id: Ie0b7618beeb65ebeb65db41600165837524bcee4
2014-07-16 19:26:26 +00:00
Alan Viverette
6e0a9fa6ed DO NOT MERGE Add support for AVD reverse() to ASLD, clean up transition handling
BUG: 16162242
Change-Id: I29336491d01d40e5369503ece858bcbe5aa99b19
(cherry picked from commit 4e9c797a9c024e5a4226ed37eece16e3db2edb78)
2014-07-16 16:25:59 +00:00
ztenghui
482eb53c8a Enable the bitmap cache for the VectorDrawable
b/16299765

Change-Id: Ia2c0fd366abc097d1ce485936de74e4e898cc07a
2014-07-14 15:49:04 -07:00
ztenghui
55f765441c Add constant state support back to VectorDrawable
At the same time, AVD is using a mutated version of VD.
And AVD won't support constant state.
Move the targetsMap down into constant state.

bug:16017895

Change-Id: I12fbc52a8719362adba9df1e0f97288decbd33b2
2014-07-09 16:05:36 +00:00
ztenghui
9cb5b4c2d9 Use AnimatedVectorDrawable for progress bar.
Change-Id: I419197ef38a611757f27ca3192350ad4bd403875
2014-06-30 12:43:52 -07:00
ztenghui
7e7ea9da67 Make AnimatedVectorDrawable public.
Clean up some useless VectorDrawable functions.
Add comments, too.

Change-Id: I8cc2165d14d09fd71f5830c4f61f9e8ac1d7c8da
2014-06-23 09:36:52 -07:00
ztenghui
e5e92602a4 Add AnimatedVectorDrawable
Currently as a hidden class.
It can support many the animations now as far as ObjectAnimator and
hierarchical group can support.
And we don't have path morphing yet.

Also support the Animator / Interpolator inflation from Context and Resources.

Change-Id: I948bbdf7373ad291171eed0b497959dce8c2edf3
2014-06-12 13:18:59 -07:00