Filing this bug to track eng work for adding motion support to animated icons. Design doc lite: https://docs.google.com/a/google.com/document/d/1qnPSE-Gq3rW8ty2aliurwB7hsEjW-gF2IDn9rKDCkSE/edit?usp=sharing
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/731e5cc35e6abe694a9d25d0b2345da435a43bfe commit 731e5cc35e6abe694a9d25d0b2345da435a43bfe Author: estade <estade@chromium.org> Date: Wed May 10 17:23:25 2017 Refactor some vector icon parsing code for reuse. The goal of this refactor is to create a shared class for iterating over the elements in a vector icon. This allows us to get data out of a vector icon without running it through PaintPath. BUG= 718549 Review-Url: https://codereview.chromium.org/2861203002 Cr-Commit-Position: refs/heads/master@{#470629} [modify] https://crrev.com/731e5cc35e6abe694a9d25d0b2345da435a43bfe/ui/gfx/paint_vector_icon.cc [modify] https://crrev.com/731e5cc35e6abe694a9d25d0b2345da435a43bfe/ui/gfx/vector_icon_types.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cc104c522c7cd341182415921253445e411b7e37 commit cc104c522c7cd341182415921253445e411b7e37 Author: estade <estade@chromium.org> Date: Fri May 12 15:42:32 2017 Add support for animations in vector icons. Adds the ability to transition from one path to another, interpolatable path, as well as transitioning some paint flags. Support for transitioning other paint flags can be added as necessary. Other useful transition operations might include applying a transform, which will require adding a transform element but should otherwise not present an issue. BUG= 718549 Review-Url: https://codereview.chromium.org/2870643003 Cr-Commit-Position: refs/heads/master@{#471314} [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/ash/resources/vector_icons/BUILD.gn [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/chrome/app/vector_icons/BUILD.gn [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/ui/gfx/paint_vector_icon.cc [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/ui/gfx/paint_vector_icon.h [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/ui/gfx/vector_icon_types.h [modify] https://crrev.com/cc104c522c7cd341182415921253445e411b7e37/ui/vector_icons/BUILD.gn
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9d068dc8a60aea79f24f02f6a659972936387087 commit 9d068dc8a60aea79f24f02f6a659972936387087 Author: estade <estade@chromium.org> Date: Thu Jun 01 20:48:02 2017 Use animated vector icon for app menu notification animation. 1. Expose IconDescription in vector icon code so when we add or modify parameters we don't have to update the API. TODO: remove the parts of the API that use multiple parameters and replace them all with IconDescription. 2. Add AnimatedIconView, which caches the start and end states and controls animating in between as well. 3. Add an animated version of browser_tools.icon. This was crafted by hand based on the non-animated version and a visual description, but in the future designers should deliver Android vector drawables which will make the process of creating these icons much easier (and perhaps automate-able). TODO: actually craft a 2x version instead of reusing 1x. 4. Apply this all to the app menu. This solves the issue of pixel perfection in the steady state. BUG= 718549 , 704786 Review-Url: https://codereview.chromium.org/2892563004 Cr-Commit-Position: refs/heads/master@{#476425} [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/app/vector_icons/BUILD.gn [add] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/app/vector_icons/browser_tools_animated.1x.icon [add] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/app/vector_icons/browser_tools_animated.icon [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/app/vector_icons/vector_icons.cc.template [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/browser/ui/BUILD.gn [delete] https://crrev.com/81ba45d614d7e3abd6f4d9062baab9f43c5f283b/chrome/browser/ui/toolbar/app_menu_animation.cc [delete] https://crrev.com/81ba45d614d7e3abd6f4d9062baab9f43c5f283b/chrome/browser/ui/toolbar/app_menu_animation.h [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/browser/ui/views/toolbar/app_menu_button.cc [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/chrome/browser/ui/views/toolbar/app_menu_button.h [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/ui/gfx/paint_vector_icon.cc [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/ui/gfx/paint_vector_icon.h [modify] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/ui/views/BUILD.gn [add] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/ui/views/controls/animated_icon_view.cc [add] https://crrev.com/9d068dc8a60aea79f24f02f6a659972936387087/ui/views/controls/animated_icon_view.h
Comment 1 by bugdroid1@chromium.org
, May 10 2017