Commit Graph

73 Commits

Author SHA1 Message Date
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
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
Jean-Baptiste Queru
5c1207be90 donut snapshot 2009-07-31 17:38:20 -07:00
Jean-Baptiste Queru
a8675f67e3 donut snapshot 2009-07-29 14:25:07 -07:00
Dianne Hackborn
e2dba02441 am 11ea3347: Allow for screen density drawables in compatibility mode.
Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
  Allow for screen density drawables in compatibility mode.
2009-07-24 16:08:56 -07:00
Dianne Hackborn
11ea33471e 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.
2009-07-24 10:47:15 -07:00
Android (Google) Code Review
8aea2f5f74 am 59c25cba: Merge change 8218 into donut
Merge commit '59c25cbaf0dd690e503b881392510127441d9074'

* commit '59c25cbaf0dd690e503b881392510127441d9074':
  DrawableContainer was not respecting the value returned by Drawable.getPadding(Rect).
2009-07-22 11:51:34 -07:00