diff options
author | J-P Nurmi <jpnurmi@digia.com> | 2014-05-23 12:04:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-05-26 14:12:15 +0200 |
commit | 3c04a2fbffda83db98af41d3509d54bdfb3a9905 (patch) | |
tree | a9de947764fc735441de9358f030628fe3481b3e /src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java | |
parent | 0c789184c7c7a7130346206e4abbcffc0858dfd7 (diff) |
Android: add support for extracting RotateDrawable
The rotation attributes are required for implementing BusyIndicator.
Task-number: QTBUG-39215
Change-Id: Ief51bf921f61b3b030f26d377b4bfd13913af6c1
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java index 4544eebd33..54245233d2 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java +++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java @@ -74,6 +74,7 @@ import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.GradientDrawable.Orientation; import android.graphics.drawable.LayerDrawable; import android.graphics.drawable.NinePatchDrawable; +import android.graphics.drawable.RotateDrawable; import android.graphics.drawable.ScaleDrawable; import android.graphics.drawable.StateListDrawable; import android.os.Build; @@ -610,6 +611,39 @@ public class ExtractStyle { return json; } + private JSONObject getRotateDrawable(RotateDrawable drawable, String filename) { + JSONObject json = new JSONObject(); + try { + json.put("type", "rotate"); + Object obj = drawable.getConstantState(); + Class<?> rotateStateClass = obj.getClass(); + Field f = rotateStateClass.getDeclaredField("mDrawable"); + f.setAccessible(true); + json.put("drawable", getDrawable(f.get(obj), filename)); + f = rotateStateClass.getDeclaredField("mPivotX"); + f.setAccessible(true); + json.put("pivotX", f.getFloat(obj)); + f = rotateStateClass.getDeclaredField("mPivotXRel"); + f.setAccessible(true); + json.put("pivotXRel", f.getBoolean(obj)); + f = rotateStateClass.getDeclaredField("mPivotY"); + f.setAccessible(true); + json.put("pivotY", f.getFloat(obj)); + f = rotateStateClass.getDeclaredField("mPivotYRel"); + f.setAccessible(true); + json.put("pivotYRel", f.getBoolean(obj)); + f = rotateStateClass.getDeclaredField("mFromDegrees"); + f.setAccessible(true); + json.put("fromDegrees", f.getFloat(obj)); + f = rotateStateClass.getDeclaredField("mToDegrees"); + f.setAccessible(true); + json.put("toDegrees", f.getFloat(obj)); + } catch (Exception e) { + e.printStackTrace(); + } + return json; + } + private JSONObject getJsonRect(Rect rect) throws JSONException { JSONObject jsonRect = new JSONObject(); @@ -695,6 +729,10 @@ public class ExtractStyle { { return getGradientDrawable((GradientDrawable) drawable); } + if (drawable instanceof RotateDrawable) + { + return getRotateDrawable((RotateDrawable) drawable, filename); + } if (drawable instanceof ClipDrawable) { try { |