summaryrefslogtreecommitdiffstats
path: root/graphics/java
diff options
context:
space:
mode:
authorCyril Mottier <cyrilmottier@gmail.com>2010-02-06 00:36:40 +0100
committerCyril Mottier <cyrilmottier@gmail.com>2010-02-06 00:36:40 +0100
commitb81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6 (patch)
treedc6bc0f013a7a637ab7dc9cd4365e31e49bfba73 /graphics/java
parentb09ef7b4fa388c1399a6359e239789ca0137aaac (diff)
downloadframeworks_base-b81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6.zip
frameworks_base-b81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6.tar.gz
frameworks_base-b81b1447d2cfa9dc5bcc02c8a1b7193400a97ab6.tar.bz2
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 ...".
Diffstat (limited to 'graphics/java')
-rw-r--r--graphics/java/android/graphics/drawable/RotateDrawable.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/graphics/java/android/graphics/drawable/RotateDrawable.java b/graphics/java/android/graphics/drawable/RotateDrawable.java
index c4a7822..2083e05 100644
--- a/graphics/java/android/graphics/drawable/RotateDrawable.java
+++ b/graphics/java/android/graphics/drawable/RotateDrawable.java
@@ -204,13 +204,27 @@ public class RotateDrawable extends Drawable implements Drawable.Callback {
com.android.internal.R.styleable.RotateDrawable_visible);
TypedValue tv = a.peekValue(com.android.internal.R.styleable.RotateDrawable_pivotX);
- boolean pivotXRel = tv.type == TypedValue.TYPE_FRACTION;
- float pivotX = pivotXRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
+ boolean pivotXRel;
+ float pivotX;
+ if (tv == null) {
+ pivotXRel = true;
+ pivotX = 0.5f;
+ } else {
+ pivotXRel = tv.type == TypedValue.TYPE_FRACTION;
+ pivotX = pivotXRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
+ }
tv = a.peekValue(com.android.internal.R.styleable.RotateDrawable_pivotY);
- boolean pivotYRel = tv.type == TypedValue.TYPE_FRACTION;
- float pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
-
+ boolean pivotYRel;
+ float pivotY;
+ if (tv == null) {
+ pivotYRel = true;
+ pivotY = 0.5f;
+ } else {
+ pivotYRel = tv.type == TypedValue.TYPE_FRACTION;
+ pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
+ }
+
float fromDegrees = a.getFloat(
com.android.internal.R.styleable.RotateDrawable_fromDegrees, 0.0f);
float toDegrees = a.getFloat(