Commit Graph

78 Commits

Author SHA1 Message Date
Christopher Lais
6efd2bad95 Don't drop the drawable cache completely on configuration change
There was a lot of fancy code just above the clear to ensure
that drawables that aren't affected by the change are kept,
then the entire array was cleared.  This patch removes the
clear, so that the drawables that haven't changed are really
kept, matching the logs, comments and larger part of the code.

This patch also fixes the various constant states to return
correct ChangingConfigurations.

Change-Id: Ic11f6179537318d3de16dc58286989eb62a07f15
Old-Change-Id: I22495e6ed232dfe056207ce5155405af1fa82428
2011-01-14 12:31:26 -08:00
Brad Fitzpatrick
70588bf864 resolved conflicts for merge of 3a2c6bf0 to master
Change-Id: I1963d8fc391bb84de1054f2b20ce4e082d764cbe
2011-01-05 14:04:06 -08:00
Brad Fitzpatrick
69ea4e15e5 Documentation fixes found over vacation hacking.
Change-Id: I28900026465d66d950cf4f05f0c202b46c3c2d43
2011-01-05 13:07:34 -08:00
Michael Jurka
65e293273a Fixed bug with reverseTransition
- calling this multiple times very quickly left the transition showing the wrong drawable
2010-12-20 21:22:50 -08:00
Romain Guy
f2a47782f3 Make Drawable.mCallback a WeakReference.
Many memory leaks occur because of long lived drawables. This should
help.

Change-Id: I2e9e8dee26579ec56e8e73f08f6b1d62be7812d9
2010-12-14 17:33:00 -08:00
Dianne Hackborn
8c7a580b34 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
2010-12-03 16:32:50 -08:00
Joe Onorato
e70b375c4b Add an opacity attribute to LayerDrawable that lets you control the opacity directly instead of
collecting the values from the children-- a task that is much harder to get right than we want to
spend startup time on.

Change-Id: Idf5b1d612472c6accfdc935c6a6fadb1eb239a73
2010-11-17 21:20:08 -08:00
Adam Powell
6af97e1c20 Revised assets for progress bars and indeterminate progress spinners.
Add support in ActionBar for activity-wide progress APIs.

Add ability for progress bars to set a target framerate rather than
the 5fps previously used.

Clean up some more dialog layouts using hardcoded styles rather than
theme attributes.

Change-Id: I8e88c7595e27c0b6f7829b598f2b084ac8501ae3
2010-11-12 19:06:40 -08:00
Adam Powell
021aad952b First pass at styling progress bars for Holo.
Added attribute to let scale drawables size based on the intrinsic
width and height as a minimum. This helps prevent artifacts when
some 9-patches are used in situations like progress bars.

Change-Id: I168a232d3225afe9b5578a05a9b8634a1084404c
2010-11-11 14:53:29 -08:00
Chet Haase
9891e1fce5 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
2010-11-11 13:20:08 -08:00
Romain Guy
1041aded2d Fix possible rendering issue when drawing a path.
Change-Id: I25f2e609589f0dd9294bcf7930de6398c0d7e377
2010-11-04 12:10:40 -07:00
Dianne Hackborn
079e235750 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
2010-11-03 19:11:19 -07:00
Chet Haase
70d4ba15b1 Performance optimizations for animations and toolkit
Change-Id: I316a48273a9cbb428a965e4b849b3e5e9e8202f1
2010-11-01 10:19:44 -07:00
Romain Guy
9db91243c5 Simplify black texture fragment shader.
Change-Id: If2d43f92f4c98ec128692761a670b0f31207a3c0
2010-10-12 13:13:09 -07:00
Romain Guy
95930e13fa Apply all Canvas transformations to ColorDrawable.
Change-Id: I29252c58224b236d0770ec005da9842990ef2c06
2010-10-04 13:46:02 -07:00
Sonia Serafimova
d45a33554c Prevent unhandled exception in NinePatchDrawable
Added null check in computeBitmapSize() to avoid unhandled
exception "java.lang.NullPointerException" at
android.graphics.Rect.<init>(Rect.java:72).

This problem was discovered in the wild.

Change-Id: I9d40629a052f1390e1811288af6209d8cc3f679b
2010-09-26 09:07:02 -07:00
Jean-Baptiste Queru
81859bc3d4 am ca3f968c: am 7d9c73fb: Merge "Prevent unhandled exception in NinePatchDrawable"
Merge commit 'ca3f968c6f0acbf94988d00bf21a82a2e8f49b86'

* commit 'ca3f968c6f0acbf94988d00bf21a82a2e8f49b86':
  Prevent unhandled exception in NinePatchDrawable
2010-09-26 08:44:16 -07:00
Jean-Baptiste Queru
ca3f968c6f am 7d9c73fb: Merge "Prevent unhandled exception in NinePatchDrawable"
Merge commit '7d9c73fb6f6f79f7f92b77482a0edbd7b89f2564' into gingerbread-plus-aosp

* commit '7d9c73fb6f6f79f7f92b77482a0edbd7b89f2564':
  Prevent unhandled exception in NinePatchDrawable
2010-09-26 08:39:03 -07:00
Sonia Serafimova
279d006b1d Prevent unhandled exception in NinePatchDrawable
Added null check in computeBitmapSize() to avoid unhandled
exception "java.lang.NullPointerException" at
android.graphics.Rect.<init>(Rect.java:72).

This problem was discovered in the wild.

Change-Id: I8a4729ceadcfc9744f11b8ceafdf24d6de88c645
2010-09-15 13:22:43 +02:00
Romain Guy
61c8c9c5b2 Fix tons of bugs and add new text rendering support.
Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
2010-08-10 12:22:01 -07:00
Romain Guy
9e044aed21 Fix NPE in RoundRectShape.
Change-Id: I3cef1b2723e5ebf3583f91b1bfe8121c0f6d253d
2010-08-06 14:27:30 -07:00
Scott Main
82e2b4cb51 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
2010-07-15 11:54:15 -07:00
Romain Guy
deba785f12 Add support to draw 9patches in OpenGL.
This change only adds the necessary API and stubs. The implementation
will be added in another change.

Change-Id: Ie50b8aff5868e78796cee331df15bdbf990d2ea1
2010-07-07 17:55:03 -07:00
Scott Main
dfe5c20440 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
2010-06-21 15:19:23 -07:00
Romain Guy
6430c943f9 Set a layered drawable's child callback to be the container.
Change-Id: I959ad03883931d727d464f384073926e8fa9e2d2
2010-05-06 18:07:40 -07:00
Romain Guy
79a63f7ddb Make sure that a drawable replacing a layer in a LayerDrawable gets a callback.
Change-Id: Iefac7d280b3c16e05f45688da655e17e21a3098b
2010-05-06 17:58:17 -07:00
Gilles Debunne
1e91b3fde0 Added documentation in Drawable.
Documentation on the ConstantState added.
Removed all warnings in Eclipse.

Change-Id: Ib1daf7eef1aff5660e805483f9dcae6fcd5a595e
2010-04-12 17:09:14 -07:00
Gilles Debunne
20fc9bfe3a Fixed links in MipmapDrawable documentation.
Fix for 78aaa97b77

Change-Id: I3b4a3b987560d5d3934776cdc7ae98c954bfab32
2010-04-12 15:33:49 -07:00
Gilles Debunne
78aaa97b77 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
2010-04-12 11:12:32 -07:00
The Android Open Source Project
8e10a7b7c8 merge from open-source master
Change-Id: I4d8f34986fd9e16ead8a22909263069dbb819d3e
2010-03-25 16:39:32 -07:00
viral.vkm
1be46d7920 setCornerRadii should be called when either of corners radius is specified
as 0dp and thus while checking for condition, it should be ORed and not ANDed.

It solves Android Issue: 939
http://code.google.com/p/android/issues/detail?id=939

Change-Id: Ic18fae769480972f763f634e7462c6ed3853220b
2010-03-25 17:50:57 +05:30
Jeff Sharkey
2b95c24138 Added more @RemotableViewMethod methods, mutate ImageView.
Catch some View methods missed during the first pass of
marking with @RemotableViewMethod annotation.  Also adds new
ImageView.setColorFilter(int) to match the android:tint XML
attribute.

When ImageView touches ColorFilter or alpha, mutate the
underlying Drawable. Fix NPE in StateListDrawable.mutate().
2010-02-17 15:03:32 -08:00
The Android Open Source Project
3941411a21 am 1e90ab54: merge from open-source master
Merge commit '1e90ab542d675616e9370ab7e5add99d7af12587'

* commit '1e90ab542d675616e9370ab7e5add99d7af12587':
  Fixs the incorrect message for SecurityException
  Default RotateDrawable's pivot set to (50%, 50%)
2010-02-11 11:20:40 -08:00
Cyril Mottier
b81b1447d2 Default RotateDrawable's pivot set to (50%, 50%)
In order to define the pivot in an XML-instanciated RotateDrawable, android:pivotX
and android:pivotY had to be set in your XML. Forgetting to set those attributes
ended up in a NullPointerException (tv = null) that were caught by the Resources.getDrawable()
method (caught as an Exception). As a result a not-very-accurate message was logged:
"Resource not found ...". Defining a default pivot value seems like a great fix.
Some other fixes would be to modify the documentation or notify the user with a better
explanation than "Resource not found ...".
2010-02-06 00:36:40 +01:00
Cary Clark
e57b7b09b1 set nine patch padding initially to an empty rectangle
Formerly, the padding state was set to null. Copying the padding
state fails when the null rectangle contents are referenced.

fixes http://b/2219785
2010-01-06 10:53:43 -05:00
Jean-Baptiste Queru
9db3d07b96 eclair snapshot 2009-11-13 13:53:39 -08:00
Dianne Hackborn
29e4a3c566 Update from API review.
Change-Id: I16b1c566f91167aac9615ac59dd297a154c828ea
2009-09-30 23:21:02 -07:00
Mike Reed
4e03999ca2 if we have a single value for roundrect radius, manually clamp it before drawing.
Skia will clamp the radius independently in X and Y to ensure it is not larger than 1/2 the width (or height).
If the caller to our drawable gives us a single value, we'll assume they want it to be circular, and not an oval.
To do that, we clamp it up front, so we get (possibly smaller) circular corners, rather than potentially
elliptical ones.

This makes the progress bar look "nicer" when it is very thin in one dimension.
2009-09-29 17:02:26 -04:00
Dianne Hackborn
b8a9f12802 Fix #2101821: Cut labels of menu items in "SnapTell" market app.
Ummmm...  this turns out to be pretty bad.  NinePatchDrawable was not
scaling its reported padding for compatibility mode, causing spacing
to be off.  All over the place.  This change should improve things quite
a bit (and magically makes nearly all of the menu flaws go away).

Change-Id: I94a8310d95b908b6f087db97d9afaed654ca6de5
2009-09-23 11:27:06 -07:00
Romain Guy
a41581ed40 Add StateListDrawable's dither flag to the constant state.
Change-Id: Ie377bfe3dfb83c33df3c0cc5a02810332a60a322
2009-09-16 17:01:06 -07:00
Romain Guy
ffff38420c Build the BitmapShader if it hasn't been built yet.
This was causing a bug in the InCall UI where the background would be stretched.

Change-Id: Ie25a7d09f4779f166e267b2f921d40441ce361d2
2009-09-15 16:39:08 -07:00
Dianne Hackborn
c297480937 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
2009-09-14 16:32:56 -07:00
Dianne Hackborn
8cae124af2 Various cleanup around resources and nine-patches.
Remove the stuff that doesn't use preloaded drawables when in
compatibility mode, since this works fine ever since we were able
to deal with drawables in a different density than the canvas.

Change the snapshot function on View to return a snapshot at
the same size that will actually be drawn on screen (when in
compatibility mode), to be able to show scaling artifacts and
all.

This change was original an attempt to fix issue #2101917: Text
field edges appears to be improperly rounded.  That turns out to
probably be something deeper in the graphics system, but also
included here is the debugging code I did to try to track down the
problem to make it easy to turn on again later.

Change-Id: I34bfca629639c7ff103f3989d88874112ef778d9
2009-09-11 13:31:45 -07:00
Mike Reed
211db4a287 change default for dither to true 2009-09-11 14:40:15 -04:00
Mike Reed
d9512a30d8 default dithering to ON (cheap, looks good)
officially ignore filtering (expensive, no real improvement)
2009-09-10 14:46:41 -04:00
Dianne Hackborn
4a51c20ce6 I am getting tired of the java doc warnings, so fix them.
Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
2009-08-24 17:37:32 -07:00
Jeff Sharkey
6afa16feb3 Add dither XML flag to StateListDrawable.
We currently allow the dither="true" flag to be set on
individual <bitmap> and <nine-patch> objects, but that flag
is overridden when they are included in a <selector>.  This
change adds the dither="true" flag to StateListDrawable so
they can be dithered when desired.

Fixes http://b/issue?id=2068024
2009-08-22 22:44:00 -07:00
Dianne Hackborn
46407d831e Fix infinite recursion. 2009-08-17 15:22:29 -07:00
Dianne Hackborn
7341d7a104 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.
2009-08-17 10:42:59 -07:00
Romain Guy
1010ac9b7c Fix possible NPE when mutating a DrawableContainer 2009-08-10 15:11:06 -07:00