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
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().
Merge commit '1e90ab542d675616e9370ab7e5add99d7af12587'
* commit '1e90ab542d675616e9370ab7e5add99d7af12587':
Fixs the incorrect message for SecurityException
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 ...".
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.
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
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
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
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
- 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.
Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'
* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
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.
Merge commit '59c25cbaf0dd690e503b881392510127441d9074'
* commit '59c25cbaf0dd690e503b881392510127441d9074':
DrawableContainer was not respecting the value returned by Drawable.getPadding(Rect).
Before this change, DrawableContainer would always return true from getPadding(Rect)
even if all of its children were returning false from getPadding(Rect). This change
modifies this behavior to respect getPadding(Rect): mConstantPadding is kept null
when getPadding(Rect) returns false for all of the children and a flag is set
to avoid recomputing that value every time getConstantPadding() is invoked.
ShapeDrawable.inflateTag() handles the 'padding' tag with the standard
attributes android:left, etc. The attribute values for these standard
attributes should be dimension specifications, e.g. '4dp'.
ShapeDrawable.inflateTag() was wrongly parsing the attribute values as plain
integers.
DrawableContainerState.mDrawables is an array which may be only partially
filled, as can be seen in the constructor and the addChild() method.
DrawableContainer.mutate() wrongly assumed that the array does not contain
null references.
The mColors member can be null, as can be seen in
GradientDrawable.setSolidColor() or the plain constructor. In that case, an NPE
will be thrown on attempts to derive a new GradientDrawable from the instance
using the private constructor GradientDrawable(GradientDrawable).
The problem also occurs when inflating a GradientDrawable from XML without
defining the start, center and end colors and then calling mutate() on the
instance.