History log of /frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
dad7d84c04c5954b63ea8bb58c52b2291f44b4df 09-Dec-2014 John Reck <jreck@google.com> Teach AssetAtlas about more drawables

Bug: 18317479

Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d422dc358f0100106dc07d7b903201eb9b043b11 25-Sep-2014 Yigit Boyar <yboyar@google.com> Added a generic configuration and theme based cache

For now, only animators use it but we can consider migrating
drawable cache to it as well.

Bug: 17456416
Change-Id: I571b96856805edb171f0fc52e6bff5a365f46b70
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
17cd4dfe3a05c2eddbcbc76066ff3b13fc3f2c8b 14-Oct-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
727cae197b123ef764a1f8fbe08a995b000d14c3 08-Oct-2014 Alan Viverette <alanv@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3f873d86441c30f5d45640a9f70b3b7331985c90 29-Sep-2014 Chris Craik <ccraik@google.com> Implement alpha as documented for drawables

bug:17693526

With this change, outline opacity isn't published by default, as was
intended. Default behavior for custom drawables is to have a
rectangular outline, but not cast a shadow, e.g. as a button
background.

Change-Id: If80a256ff359bcb58f3f593ec9018f2df5fc4e44
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
607bd848269fb802550e63aa61945790616f97a7 12-Sep-2014 Alan Viverette <alanv@google.com> Update icons to vectors, fix preload theming & vector tinting

Adds a missing JNI binding to AssetManager, ensures drawables have
default tint modes as documented, and updates vector tint appropriately
when state changes.

BUG: 17385604
Change-Id: Ice92885989ebc13b95952f5dc3b7904cc956da12
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bd5afc71864181c549bf3c620eedf8fc8c0cd531 05-Sep-2014 Alan Viverette <alanv@google.com> Remove old setTint from Drawable

BUG: 15782973
Change-Id: Idf0a6ea7c81135b032fcdadc46ee78d7db6945c7
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
a426445dfdab43886dd894f2ba8a1d55bfcbb278 29-Jul-2014 Alan Viverette <alanv@google.com> Separate tint and tintMode properties

BUG: 16054922
Change-Id: I820fb857b671faf9eb27612e470e820c5c4cd6b5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
77b5cad3efedd20f2b7cc14d87ccce1b0261960a 31-Jul-2014 Chris Craik <ccraik@google.com> Add outline alpha

bug:16140822
bug:16566746

This allows background drawables to alter the opacity of a shadow
being cast with their own alpha values.

Change-Id: I49698cc7c1bf4b2b55ffe2f82899543ca62bc61c
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
31ba192dd201df2cad96a8c503f730130ab0d80f 18-Jul-2014 Chris Craik <ccraik@google.com> Tweaks to outline API

b/15283203
b/16142564

Remove boolean return value chaining, as it's redundant with
the data in the Outline itself.

Change-Id: I3116e57cd1b35c98b74e95195117edd7e39fb2df
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7068c39526459c18a020e29c1ebfa6aed54e2d0f 14-Jul-2014 Alan Viverette <alanv@google.com> Fix hotspot movement on focus change

BUG: 15726988
Change-Id: I97f88e5f7e404ecfcd5c254fddd18c8f6616064e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d7f4a3cdd7a056b0618d170f20da710a4255c616 11-Jul-2014 Alan Viverette <alanv@google.com> Remove material progress drawable

BUG: 16138805
Change-Id: If8a8981e6ce741d563e870e3c09cbb5f39d30ac9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
8e5e11b99fac942122ee2d6cdd30af51564861ae 07-Jul-2014 Alan Viverette <alanv@google.com> Handle configuration changes in drawable attributes

Adds themeable attribute support to InsetDrawable, adds support
for attribute configuration changes to all themable drawables.

BUG: 16045735
Change-Id: I3dc62d28801760ac69d303be81b6c78bb9bb5aca
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c054966b719c8a7255f7cf4120cca5050acb68bd 04-Jul-2014 Alan Viverette <alanv@google.com> Make optical insets actually work

Change-Id: I9fabf4cb939cc7a868f95580e7229745acde0418
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9a347f199284ad8bcb8a81bfbd306fe0b1a710ba 28-Jun-2014 Chris Craik <ccraik@google.com> Initial replacement of setOutline() with ViewOutlineProvider API

bug:15283203

A View's outline is now managed by its outline provider. This means
the outline is automatically requeried when needed (e.g. drawable
updates or resize), with customizable querying behavior.

Also adds 'isFilled' property to outline, to be used for hinting
shadow overdraw avoidance.

Change-Id: Ie137548fa850f1ff7863ab2f660d05145c2ad11e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
911743652b597057a1bd7ef8a921e9ff8dce0f4a 17-Jun-2014 Alan Viverette <alanv@google.com> Add attributes and accessors for tinting View drawables

Also cleans up handling in setters for managed drawables.

BUG: 15391544
Change-Id: Idc08f7eaea0050feb6403566985a6d58185b81f8
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b3c56086d802ae28888dd97ba1f49bd6cee0b673 14-Jun-2014 Alan Viverette <alanv@google.com> Add support for setTint in all Drawables, clean up lint warnings

Change-Id: I962089ca59684cef28cb4a648d4a91e542bdf5d4
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
cda212d79d449468384cc7744878b8c99984059c 14-Jun-2014 Jeff Brown <jeffbrown@google.com> Revert "Add support for setTint in all Drawables, clean up lint warnings"

This reverts commit 381f83b613f7b6e71180983dbb992ff62f8dd6e3.

Change-Id: I1181f436c647216ac46162260d9d886197b24568
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
4b17118aca1e67963254ab83504b0753a3eac7ce 14-Jun-2014 Alan Viverette <alanv@google.com> Add support for setTint in all Drawables, clean up lint warnings

Change-Id: Ia38b9d3e9d5c0072382050e815bdd9232b672e50
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e5e92602a41a4ddc7b42cd1c171a0edfbd09b8da 03-Jun-2014 ztenghui <ztenghui@google.com> 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
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
830960cce032a1b0dc0cf54bcc44ffa339388c21 07-Jun-2014 Alan Viverette <alanv@google.com> Material theme

BUG: 15467097
Change-Id: I15191362e104a902895418fc615892c21db64c35
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bb938107b7ef1f6660b9f9cbafacd9d0a427bedc 04-Jun-2014 Alan Viverette <alanv@google.com> Merge "Temporary drawable for Quantum progress indicator" into lmp-preview-dev
3567140b04907790fefc479be7eec8115ea3a927 04-Jun-2014 Alan Viverette <alanv@google.com> Temporary drawable for Quantum progress indicator

Also cleans up unused 20dp spinner drawables.

Change-Id: I69aba84eca9f9e8d44a4237d894015caeb3d2308
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
910a0b4d02d0be3e164a32825785fa3d02fe55a2 04-Jun-2014 Alan Viverette <alanv@google.com> Fix build, fix Drawable loop

Change-Id: I524b7f40c700ebe601fdbe80644a46e90ab2bba0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
6dbe51b50e82057af4d29882889444d22ac19c9c 03-Jun-2014 Alan Viverette <alanv@google.com> Clean up drawable theming APIs

Removes APIs for themed creation of a drawable from a stream, since
that doesn't involve any inflation. Also cleans up tinting methods
left over from previous clean up.

BUG: 15089957
Change-Id: I2af7aa9a6d351ae61b33ee1216c674fae1bffe11
Signed-off-by: Alan Viverette <alanv@google.com>
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e7772d313b88e9fd3366670a9c8d1b145edef344 22-May-2014 Alan Viverette <alanv@google.com> Move setTint into Drawable, unhide getDirtyBounds on Drawable

BUG: 15089957
Change-Id: Ib622ba24b3f4bcf430e1d524895ac5cb104a232e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
53a3ed7c46c12c2e578d1b1df8b039c6db690eaa 22-May-2014 Alan Viverette <alanv@google.com> Clean up hotspot bounds API

Change-Id: I7daf7e2d360d761f673aa69a0f925b8076ab19c6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
47a7d61e70230bbed030e8795a17bf43c479616f 21-May-2014 Chris Craik <ccraik@google.com> Merge "Clean up Outline API, method on drawable"
3b5c4272db3e089c4a06d2db2ddf2aee5ebb6281 20-May-2014 Alan Viverette <alanv@google.com> Various API review fixes to resources and drawables

BUG: 15025565
Change-Id: If00c85816f8288338967f7a85453d21f858f5ca7
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f31512eb17b6327c5f81bfb8a69c3a6119a0dd66 20-May-2014 Alan Viverette <alanv@google.com> Merge "Various API council fixes to drawables"
e5b082d6eb0489e7dbe3159338f8c94c0af61dee 20-May-2014 Alan Viverette <alanv@google.com> Various API council fixes to drawables

BUG: 15089957
Change-Id: Ieaf468bbff092e68f6313d8a5ecccda8b753806d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7dc5b41e609d3ff55ca194682832d14a7236fa87 20-May-2014 Chris Craik <ccraik@google.com> Clean up Outline API, method on drawable

bug:15025466
bug:15089680
Change-Id: I8d3b64a0d9dbdbaf679042c8b384d2050323a8e6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c80ad99a33ee49d0bac994c1749ff24d243c3862 20-May-2014 Alan Viverette <alanv@google.com> TouchFeedbackDrawable is now RippleDrawable

Change-Id: I59f5f04b73089215c6320560556ac21beb03db06
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
5e92c95d847a68178cf6099c801f82dcb7e4fa47 09-May-2014 Alan Viverette <alanv@google.com> Animated state transition drawable

Change-Id: I6c795d55cd7ab9163fdd6fe6ce3771bbd7015d62
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e6a39b12656ab8d5c77d8366b24aa6410fd42e11 24-Apr-2014 Chris Craik <ccraik@google.com> Refactor Drawable outline production, flesh out Outline methods

Change-Id: I1b8c25384b5f123e86cf5e0b2270eb741bc3159b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
61956606818918194a38e045a8e35e7108480e5e 23-Apr-2014 Alan Viverette <alanv@google.com> Add ripple to switches, radio buttons, check boxes, seek bars

BUG: 14231772
Change-Id: Ie40eac9f68815294460175965a999dd75f4144b5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2f8ba8f7fad2b608102a9282219aaea2223e94f5 09-Apr-2014 Alan Viverette <alanv@google.com> Update supported Drawable tinting modes and docs

Change-Id: I9c20d2bc4dc499f91c21a348871cf209c1065ba6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
860126b78aa4d6e8db5208c7f96764a8556cf95f 09-Apr-2014 Alan Viverette <alanv@google.com> Make Drawable hotspot APIs public

Change-Id: I8377ed735f73f7083636947aa08a5427f1dc3bf6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
45dc35b3c9e7e1494c09f4ed167426da6d376a7d 03-Apr-2014 Alan Viverette <alanv@google.com> Fix dialog style, selectable item bg pinning, and pressed state

BUG: 13746931
Change-Id: I31c2959f3e773a3aeb66ba5842d8d6fbb288acc1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2c5d6d742a35885820c33364fec65a7e163fbbf8 27-Mar-2014 Alan Viverette <alanv@google.com> Merge "Separate ripple animation logic, remove RevealDrawable"
abb7d134c02ac60091108c491dafb00877093170 25-Feb-2014 John Hoford <hoford@google.com> add Dynamic Drawable (vector graphics for Icons)

Change-Id: Id44b7f6d1b8dd073b8ed35e2142a380550f2449b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
47bf0d95ef6c9ac68773567d503749c874a07f2f 27-Mar-2014 Alan Viverette <alanv@google.com> Separate ripple animation logic, remove RevealDrawable

Change-Id: I9d0370cea288e6caf518209b5bc94a66a0f9176f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
52b999f0721b53e9c6e18a4bd664e89aeb65b2d5 25-Mar-2014 Alan Viverette <alanv@google.com> Implement APIs for obtaining, caching themed Drawables

When Drawables are inflated during preload (or otherwise without a theme)
they cache their themeable attributes in their constant state as an array
keyed on attribute index. Drawables inflated with a theme will simply
resolve theme attributes as part of normal inflation, and they will not
cache any themeable attributes.

Drawables obtained from Resources are pulled from theme-specific cache
when possible. If an unthemed Drawable exists in the preload cache, a
new constant state will be obtained for the Drawable and the theme will
be applied by resolving the cached themeable attributes and overwriting
their respective constant state properties. If no cached version exists,
a new Drawable is inflated against the desired theme.

Constant states from themed drawables may be cached if the applied theme
is "pure" and was loaded from a style resource without any subsequent
modifications.

This CL does not handle applying themes to several Drawable types, but it
fully supports BitmapDrawable, GradientDrawable, NinePatchDrawable,
ColorDrawable, and TouchFeedbackDrawable.

BUG: 12611005
Change-Id: I4e794fbb62f7a371715f4ebdf946ee5f9a5ad1c9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b49f446c98096c4790a11d9b5bc83a4e585278c9 20-Mar-2014 Chris Craik <ccraik@google.com> Rework Outline API, remove isolatedZVolume remnants

Change-Id: I30c2fe832dcb98fa6329b1a595b3d3aafbdcad6b
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
813d85b82cb7cbaa5dbe05496d1038caa17a1698 27-Feb-2014 Alan Viverette <alanv@google.com> Fix progress bar tinting, add tint support to ShapeDrawable

Cleans up APIs a little, since I think we may want to add tinting
modes beyond what Porter-Duff can provide. Plus we don't actually
support some of the Porter-Duff modes in hardware.

Change-Id: I2cea1b737cc93607a24842c54eb9f0d8346b29d4
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
12b97f5d2b15194ed6673c9838b13c8312157709 24-Feb-2014 Alan Viverette <alanv@google.com> Change colorFilterColor to tint, allow use of ColorStateList

BUG: 13149901
Change-Id: I6487bec372cb74db53d7bbdfa35de071764763b0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d5154ec2bc7e7c0bdfd14fc784912d390afe43cc 06-Feb-2014 Alan Viverette <alanv@google.com> Add prototype for borderless touch feedback drawable

Change-Id: I6366855b1fb838aa077bc6bdb62adc2134c51dca
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
16f1d81d47beb1e04504a76de66e2919dde08c33 31-Jan-2014 Alan Viverette <alanv@google.com> Revert "Cache display lists for Drawables"

This reverts commit c062c7003f34999632fe4ad721dcd47cd71b2159.

Change-Id: I96d4f0482b927101f52140b667f4c38ffc8687f5
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
cd53c257e3e75325eba70f5e52ecadfc1b2bf567 27-Jan-2014 Chris Craik <ccraik@google.com> Disable Drawable DisplayLists

bug:12581401
bug:12758460

DisplayLists of drawables aren't being cleared out correctly, and will
incorrectly store state across configuration changes. Disable them
temporarily until this is fixed.

Change-Id: Ic09f0674d30476127316cfb4ffe45eb34cc15aa0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c062c7003f34999632fe4ad721dcd47cd71b2159 15-Jan-2014 Alan Viverette <alanv@google.com> Cache display lists for Drawables

Change-Id: I86e2dd4cd4ac8871f4131450cb9082c2b8de2eed
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d9e788c4f0528e46db4a035cfac043736becb0d1 07-Jan-2014 Alan Viverette <alanv@google.com> Add support for specifying Drawable color filter in XML

BUG: 12178044
Change-Id: Ie118aebf56bb4580c97b625e20f4e76bed4b6f6f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
223622a50db319d634616311ff74267cf49679e7 17-Dec-2013 Alan Viverette <alanv@google.com> Add reveal drawable, APIs for forwarding Drawable focus and touch

Hotspot APIs are hidden pending finalization of how we handle IDs.

BUG: 11416827
Change-Id: Iecacb4b8e3690930d2d805ae65a50cf33482a218
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c502744f2ddcc80a34f5197b5d2c0d701c7d6e71 13-Aug-2013 Newton Allen <newt@google.com> Fix some documentation typos.

Change-Id: I0360d468d54d970c87f313e24e50965245206f28
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
80da140cc4ce2df529bae92d379ed8598acf356c 08-Oct-2013 Adam Powell <adamp@google.com> am 266b3026: am 20ba658b: am 31049d76: Use SCREEN Xfermode for keyguard badges; update SeekBar

* commit '266b3026c42ed3ba0feedd9abe3e3bb6932c2f23':
Use SCREEN Xfermode for keyguard badges; update SeekBar
31049d76c55b18a6d9993f0d9687598740b16014 07-Oct-2013 Adam Powell <adamp@google.com> Use SCREEN Xfermode for keyguard badges; update SeekBar

Plumb through the necessary API features through Drawables and
ImageView but leave it hidden for now pending future API review and
plumbing through the rest of the framework Drawable implementations.

Update SeekBar assets used for keyguard transport control.

Set selected status directly instead of finding views by id.

Bug 10531608
Bug 10784913

Change-Id: Ia38bd04ad1bc26e9e6da1dda8a374c9ba3ceccb3
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d9273d6f289d9b55da3fd0db2f659fdfb48106a8 31-May-2013 Tor Norbye <tnorbye@google.com> Add typedefs and nullness annotations.

This changeset adds in typedef annotations (custom annotations
marked with @IntDef) for various int parameters and return values
in the API. It also adds nullness annotations for cases where the
documentation explicitly mentioned null policy, or where it was
blindingly obvious from the context. Also fixed some typos in the
documentation.

Change-Id: Ica27c01368895818e26237544edd8483007155bb
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3f5a90b2fbba2a83a8a2c5babd5d466a5e0ad2aa 25-Jun-2013 Fabrice Di Meglio <fdimeglio@google.com> Add automatic Drawable mirroring capability when in RTL layout direction

- default value is "no mirroring"
- introduce android:autoMirrored as a new attribute for Drawable,
BitmapDrawable, LayerDrawable, StateListDrawable and NinePatchDrawable
- setting android:autoMirrored="true" means that the drawable will
be mirrored when the layout direction is RTL (right-to-left)
- also fix an issue with ImageView drawable layout direction not
updated correctly when RTL properties were changed

See bug #7034321 Need Drawable RTL support

Change-Id: If595ee5106c786f38e786d3a032e182f784a9d97
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
54999da4b6aaf0167f37f0eec987a670254b775f 31-May-2013 Romain Guy <romainguy@google.com> Remove MipmapDrawable

It's a hidden API that nobody uses.

Change-Id: Ie0ecbc45cd191a595e53fe8765defe6f2aa7e3f6
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3b748a44c6bd2ea05fe16839caf73dbe50bd7ae9 18-Apr-2013 Romain Guy <romainguy@google.com> Pack preloaded framework assets in a texture atlas

When the Android runtime starts, the system preloads a series of assets
in the Zygote process. These assets are shared across all processes.
Unfortunately, each one of these assets is later uploaded in its own
OpenGL texture, once per process. This wastes memory and generates
unnecessary OpenGL state changes.

This CL introduces an asset server that provides an atlas to all processes.

Note: bitmaps used by skia shaders are *not* sampled from the atlas.
It's an uncommon use case and would require extra texture transforms
in the GL shaders.

WHAT IS THE ASSETS ATLAS

The "assets atlas" is a single, shareable graphic buffer that contains
all the system's preloaded bitmap drawables (this includes 9-patches.)
The atlas is made of two distinct objects: the graphic buffer that
contains the actual pixels and the map which indicates where each
preloaded bitmap can be found in the atlas (essentially a pair of
x and y coordinates.)

HOW IS THE ASSETS ATLAS GENERATED

Because we need to support a wide variety of devices and because it
is easy to change the list of preloaded drawables, the atlas is
generated at runtime, during the startup phase of the system process.

There are several steps that lead to the atlas generation:

1. If the device is booting for the first time, or if the device was
updated, we need to find the best atlas configuration. To do so,
the atlas service tries a number of width, height and algorithm
variations that allows us to pack as many assets as possible while
using as little memory as possible. Once a best configuration is found,
it gets written to disk in /data/system/framework_atlas

2. Given a best configuration (algorithm variant, dimensions and
number of bitmaps that can be packed in the atlas), the atlas service
packs all the preloaded bitmaps into a single graphic buffer object.

3. The packing is done using Skia in a temporary native bitmap. The
Skia bitmap is then copied into the graphic buffer using OpenGL ES
to benefit from texture swizzling.

HOW PROCESSES USE THE ATLAS

Whenever a process' hardware renderer initializes its EGL context,
it queries the atlas service for the graphic buffer and the map.

It is important to remember that both the context and the map will
be valid for the lifetime of the hardware renderer (if the system
process goes down, all apps get killed as well.)

Every time the hardware renderer needs to render a bitmap, it first
checks whether the bitmap can be found in the assets atlas. When
the bitmap is part of the atlas, texture coordinates are remapped
appropriately before rendering.

Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
de1fae77b6947c8696229ca113a812bc0b79e821 13-Apr-2013 Dianne Hackborn <hackbod@google.com> am 00c4c670: am 301e95f2: Merge "Add a little more resource load tracing." into jb-mr2-dev

* commit '00c4c67069b9d13005ae072b8744c728aa73f99a':
Add a little more resource load tracing.
0acc1931d364fabb32e2051f58bfbbc5f2505176 13-Apr-2013 Dianne Hackborn <hackbod@google.com> Add a little more resource load tracing.

Change-Id: Id797adb67ab411d5b1a1c223863d3bb4655d10b1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
22fc72c8a8a2ddd3665fe509bf0990c3a01bae77 21-Mar-2013 Chet Haase <chet@google.com> am bcba9442: am 10c4d99f: Merge "Manage drawable invalidation automatically for Overlays" into jb-mr2-dev

* commit 'bcba9442d4066c9e34ee7a9f050b2858465e052a':
Manage drawable invalidation automatically for Overlays
633326e29f008d2b86e523cfeedcbb2a0883181f 21-Mar-2013 Chet Haase <chet@google.com> Manage drawable invalidation automatically for Overlays

Drawables added to a view's Overlay will now cause the Overlay to
be invalidated via the normal drawable-invalidation mechanism. That is,
changes to any of the drawables in the overlay should cause invalidation of
the proper area of the overlay and thus the hostView, causing the appropriate
area to be redrawn.

Also, fixed a bug in drawable invalidation so that bounds changes will now
correctly invalidate both the old and new bounds areas.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: Icae5fa0e420232ee17dc39be10084345bae8dbd8
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b1af7f3d4be6cd6bc6e1e805f22c209e19bf928f 08-Mar-2013 Chet Haase <chet@google.com> add getAlpha() to Drawable

Drawable has setAlpha(int), but no getAlpha() (although some subclasses have added the
method). This makes it more tedious to use the property. For example, animations that wish to
animate this property must explicitly give it a start value since this value cannot be queried
from the object.

The trick is that setAlpha(int) is abstract, only implemented by subclasses. We cannot take this
approach for getAlpha(), as we would break all subclasses of Drawable until they implemented the
method. Instead, we'll add a default method which returns an invalid value, making it easier for
clients of the method to detect whether the value is valid.

All subclasses of Drawble in frameworks have been changed to add an override of getAlpha() when
appropriate.

Issue #7485875 Drawables is missing getAlpha()

Change-Id: I06b6e35f1a56d202838eca44759c85c82595020a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7ac40e38696aa74d7b7938add8fdbc47180ae424 08-Feb-2013 Romain Guy <romainguy@google.com> Deprecate useless BitmapDrawable constructor
Bug #2590549

Change-Id: Icb45bf2d9836c43ed0825105f64d7b98afcdcdac
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7b7578184567f4e4f0740ce935cc192765410cca 20-Sep-2012 Philip Milne <pmilne@google.com> Bug #6110465. Optical bounds support for all ViewGroup subclasses.

This CL generalizes the optical bounds support previously contained in the
GridLayout implementation and then incorporates the new form directly into
the base View and ViewGroup implementations. After this change, GridLayout is
returned to an 'optical bounds' unaware state, and all layouts (including non-platform
ones) inherit the ability to perform their layout operation by optical (rather than clip)
bounds using their existing implementations.

The "layoutMode" property of ViewGroup and its associated constants are
made public in this CL.

Change-Id: Ic1bba0e1c6fc14da4aeab0b28c975d562b5f82dd
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
29d0aa73a099fde05c506857b5d215cde87b78d6 19-Sep-2012 Romain Guy <romainguy@google.com> Merge "Compute GradientDrawable's opacity correctly" into jb-mr1-dev
e91aa0fa64db892194ba82ec7d41df6fb9185471 19-Sep-2012 Romain Guy <romainguy@google.com> Compute GradientDrawable's opacity correctly

The current implementation of GradientDrawable always assumes the shape needs
to be blended. This causes all windows to be considered translucent by default.
This change recomputes the opacity as needed to ensure windows are marked
opaque when they should.

Change-Id: Iaf291d889a6c5122ab00c9f5781df3e7f61547fa
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f358260af4cd34961acc13d849819c8b6089f309 18-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #7172972 API REVIEW: android.graphics.drawable.Drawable

- add @hide

Change-Id: I20dca8d7f6a58dfd1dd342135dcff912e08d4ab9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c5daf84f6647d3280c59554cd6ec9c2a4f119bfc 07-Sep-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix the build

- use fully qualified name for Javadoc

Change-Id: Ic75ce7e19d407dc40c96b585f9fa1827fb614ba1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f1c0aeda259dd0dbab4356c909d33fe7e1ca0d2a 03-Aug-2012 Dianne Hackborn <hackbod@google.com> Fix issue #6921726: Prime: Cannot make or receive phone calls...

[NPE at android.graphics.drawable.Drawable.createFromResourceStream]

Change-Id: I223428ffb39e883518aad817227f32851ea18aec
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
908aecc3a63c5520d5b11da14a9383f885b7d126 01-Aug-2012 Dianne Hackborn <hackbod@google.com> Start moving away from DisplayMetrics.DENSITY_DEVICE.

This puts in most of the infrastructure needed to allow us to
switch between different densities at run time. The main remaining
uses of the global are to initialize the Bitmap object (not sure
what to do about that since it doesn't have anything passed in
the constructor to get this information from), and being able to
load drawables if we need a different density than what was preloaded
by zygote.

Change-Id: Ifdbfd6b7a5c59e6aa22e63b95b78d96af3d96848
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
b03b434089cf2106c467b2827a65e5c589c91d01 04-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Revert "Revert "Clean up layout direction APIs for Drawable""

This reverts commit c96132ff53e5c26f5b0170edd85072006fb2bc70
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c96132ff53e5c26f5b0170edd85072006fb2bc70 02-Jun-2012 Jean-Baptiste Queru <jbq@google.com> Revert "Clean up layout direction APIs for Drawable"

This reverts commit c1da65187a4b9de8f72bd617ef937030187c0a92.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c1da65187a4b9de8f72bd617ef937030187c0a92 01-Jun-2012 Fabrice Di Meglio <fdimeglio@google.com> Clean up layout direction APIs for Drawable

- see bug #6427629

Change-Id: I3119db3022bba0ee325b6d0d4471bfebd850ec10
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
bbd51f1e360b22eece1d74bd65c7e6a0b59dee59 19-Apr-2012 Philip Milne <pmilne@google.com> Share Insets instances between views that have the same background (Drawable)

Change-Id: I47d93ccca6f553b678d25966d10d7a0a97cfa5ea
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
1557fd7809078e421f751efc7d2539b3efdc54b2 05-Apr-2012 Philip Milne <pmilne@google.com> Fix for bug 6110465.

Add layout bound metadata to 9-patch files and make layouts take them into account.

This CL contains a proposed API for dealing with layout bounds.

This solution exposes:

1. Class: Insets - for storing layout Insets (and later possibly padding).
2. Methods: View:(get/set)LayoutInsets() - for storing layoutBounds.
3. Methods: ViewGroup:(get/set)LayoutMode() - for controlling layoutMode.

It also iuncudes the changes to GridLayout to support layout bounds.

Change-Id: I60c836b6530b61c5abf37f93ee9c44aad73573f1
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
ec4a50428d5f26a22df3edaf7e5b08f41d5cb54b 04-Apr-2012 Amith Yamasani <yamasani@google.com> Embed layout padding in nine patch images

- Added a new custom PNG chunk that carries the layout padding ints.
- Extract the padding ticks from .9.png images and store in the chunk.
- Load the padding information at runtime into Bitmap and NinePatchDrawable.

- The new chunk is ordered first so that it doesn't cause a problem in older
versions of the platform.

Bug: 6087201

Change-Id: I5de46167a1d44b3ec21065b0c165e594b1dc8399
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
06e1ec6462763a2f12ba5fb1c1c826bf393bfacd 10-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Make Drawable RTL APIs public

- also optimize imports

Change-Id: I2649a539a5784293d09179981a5d57e900219246
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
61fd1e8d8c3ccf2d6b7d4af1c19e8f0988d5a1ec 26-Oct-2011 Joe Fernandez <joefernandez@google.com> docs: add developer guide cross references, Project ACRE, round 3

Change-Id: I6125315ecdf0f78dd947c514a9944729d723e95d
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
2273b1e4eae27fa60b0b90d16a1891b4526c9b9c 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Hide RTL related APIs

Change-Id: Idda458fcdebe7afeb9b95e328e552fcbc7939157
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c0053223bedf33581b0830fb87be32c1f26e5372 13-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Add View.getResolvedLayoutDirection()

- update Callback2 interface
- update Gravity.getAbsoluteGravity() and Gravity.apply() to be more generic
by changing "boolean isRtl" parameter to "int layoutDirection"
- fix BiDiTests for RTL FrameLayout

Change-Id: I97bb456c22d5fd3ecb34f08564ce4dbed37e7459
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
6a03640539405afbdefe72894759281b98aa6e6f 23-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Add support for Gravity BEFORE and AFTER

- update layouts
- add Callback2 for RTL aware Drawable
- add unit tests

Change-Id: Ic64d0291e262170aff7297c6580b0b422eaa8d89
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
70588bf864f961974c93aace7586d3e2773a54a8 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> resolved conflicts for merge of 3a2c6bf0 to master

Change-Id: I1963d8fc391bb84de1054f2b20ce4e082d764cbe
69ea4e15e52c456537575d21443ac1efdb03a902 05-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Documentation fixes found over vacation hacking.

Change-Id: I28900026465d66d950cf4f05f0c202b46c3c2d43
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f2a47782f31b58d2d31bd00b50fe43604af8b9c2 15-Dec-2010 Romain Guy <romainguy@google.com> Make Drawable.mCallback a WeakReference.

Many memory leaks occur because of long lived drawables. This should
help.

Change-Id: I2e9e8dee26579ec56e8e73f08f6b1d62be7812d9
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
8c7a580b34d67fefd5f777c7bd6247b2d3960608 03-Dec-2010 Dianne Hackborn <hackbod@google.com> Some theme cleanup.

- Add new dialog themes without a title bar.
- Add new Theme.Holo.NoActionBar.DialogWhenLarge.
- Remove old Extended and Theme.Light.Holo themes.
- Reorder the public definitions to keep things nice.

Also @hide the MipmapDrawable class.

Change-Id: Ic69a56e9b28aacf441780633f37f0bc6a475d08a
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9891e1fce5f29d0421d34aa481037417bd70853d 11-Nov-2010 Chet Haase <chet@google.com> Add invalidation to Drawable when its properties change

invalidateSelf() already exists on Drawable. This triggers a call to
callback listeners so that they know the drawable has been invalidated.
For example, the background drawable on View will cause the View itself
to be invalidated.

Change-Id: I45b231a7600dcf3bc139e4059b7c9940ff49f60c
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
079e23575024e103358c982152afb7a720ae1a8a 19-Oct-2010 Dianne Hackborn <hackbod@google.com> Add new fade in/out feature for drawable containers.

This is used to allow list view's pressed and activated indicators
to fade in an out, though of course it can be used elsewhere as well.

There is a lot of complexity in supporting this in list view. The
two main things that are being dealt with:

- When recycling views, we need to make sure that the view's drawable
state doesn't get animated from an old row's state. The recycler
now keeps track of which position a view was last in, and if it is
reused at a new position there is a new View/Drawable API to tell
it to jump to its current state instead of animating.

- For the pressed indicator to fade out, we need to keep displaying it
after it is hidden. There are new variables and code to keep track
of this state, and tweaks in various places to be able to remember
the last selected position and continue updating the drawable bounds
as needed.

Change-Id: Ic96aa1a3c05e519665abf3098892ff2cc4f0ef2f
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
82e2b4cb51e869a5c2014f56e5b0cf38569ff09a 15-Jul-2010 Scott Main <smain@google.com> am 4fd41688: am 5352d237: am 38137d7a: Merge "docs: lots of additions to the resources docs new drawable resources add <merge> and <include> to layout resource update drawable class descriptioons to point to resources guide add ID resource type" into froyo

Merge commit '4fd416880e53c172bac4a51b2eafea699b58badf'

* commit '4fd416880e53c172bac4a51b2eafea699b58badf':
docs: lots of additions to the resources docs
dfe5c204403bc56c29bb36410574eab8b1950417 09-Jun-2010 Scott Main <smain@google.com> docs: lots of additions to the resources docs
new drawable resources
add <merge> and <include> to layout resource
update drawable class descriptioons to point to resources guide
add ID resource type

Change-Id: I733eec50bb2671f28c9e6dd7dec14eb6586f5193
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
1e91b3fde0a1a76388c7f2a7fd67562c66818f2e 13-Apr-2010 Gilles Debunne <debunne@google.com> Added documentation in Drawable.

Documentation on the ConstantState added.
Removed all warnings in Eclipse.

Change-Id: Ib1daf7eef1aff5660e805483f9dcae6fcd5a595e
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
20fc9bfe3ad16c5f36026fc43c85d0647b75cc40 12-Apr-2010 Gilles Debunne <debunne@google.com> Fixed links in MipmapDrawable documentation.

Fix for 78aaa97b77d56e35e994611406deb398eb9005db

Change-Id: I3b4a3b987560d5d3934776cdc7ae98c954bfab32
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
78aaa97b77d56e35e994611406deb398eb9005db 10-Apr-2010 Gilles Debunne <debunne@google.com> New MipmapDrawable class.

This Drawable holds different scaled version of a Drawable and use the appropriate one
depending on its actual bounds to minimize scaling artifacts.

Change-Id: I4ced045d73c1ddd8982d9aaf39c3599b3ac58a16
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
c2974809373697147cbe5754835cc871fb93aef1 14-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2116977: buttons are huge and bent

Now that we are using preloaded drawables in compatibilty mode, when
constructing them from their constant state we need to set the new
drawable's target density appropriately.

Change-Id: I3665cbea09d38b9ac5f45f8c380dc8641f86b266
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
46407d831ef31c0935e6d069198ffb275c840d83 18-Aug-2009 Dianne Hackborn <hackbod@google.com> Fix infinite recursion.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
7341d7a104b47996445d069a695e155a07184606 14-Aug-2009 Dianne Hackborn <hackbod@google.com> More work on wallpapers.

- Do better about figuring out when to stop them and other related window
management.
- Fix problem where we were not redrawing the surface when the orientation
changed. This was the cause of the device hang.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
e2dba02441b42afbae725109ac779877a4b72aa0 25-Jul-2009 Dianne Hackborn <hackbod@google.com> am 11ea3347: Allow for screen density drawables in compatibility mode.

Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
11ea33471e1a14a8594f0b2cd012d86340dd3bd8 23-Jul-2009 Dianne Hackborn <hackbod@google.com> Allow for screen density drawables in compatibility mode.

This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
0f07b2c850ee1462ca4cf3137a954a9fc4bdf773 27-Apr-2009 Brad Fitzpatrick <brad@danga.com> Lazily allocate the mBounds Rect in Drawable.

For background, see:
http://kohlerm.blogspot.com/2009/04/analyzing-memory-usage-off-your-android.html

Thanks, Markus!
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
f4f7046183f0daedd17703fa16cf9026442bdaee 27-Jun-2009 Romain Guy <romainguy@android.com> Update spinner's drawables. Clean up resources, pave the way for new animation.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
23bd84ce6c448b73847eb404f3a1cc7b10afb6d6 28-Apr-2009 Romain Guy <romainguy@google.com> Fixes #1816088. Avoid initializing empty Rects when they are useless, especially in Zygote.
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/graphics/java/android/graphics/drawable/Drawable.java