summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2014-11-09 15:51:40 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2014-11-10 13:44:25 +0100
commit132650e4e0a02786978663b463966054a3fb412d (patch)
tree7d979a185396d69bdc3de7dc4280b6a4ec6e7e26
parentd9715108c1bf46d3a2b0482d1c9a0f61215a5e0e (diff)
Android: extract BitmapDrawable attributes
Task-number: QTBUG-42488 Change-Id: Idd70e6300f78d96b044928885e71957daad1f5af Reviewed-by: BogDan Vatra <bogdan@kde.org>
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java24
1 files changed, 22 insertions, 2 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 1e30e4a580..2aeb89d5d5 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/ExtractStyle.java
@@ -67,6 +67,7 @@ import android.graphics.NinePatch;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
+import android.graphics.PorterDuff;
import android.graphics.drawable.AnimationDrawable;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ClipDrawable;
@@ -820,8 +821,27 @@ public class ExtractStyle {
bmp = (Bitmap) drawable;
else
{
- if (drawable instanceof BitmapDrawable)
- bmp = ((BitmapDrawable)drawable).getBitmap();
+ if (drawable instanceof BitmapDrawable) {
+ BitmapDrawable bitmapDrawable = (BitmapDrawable)drawable;
+ bmp = bitmapDrawable.getBitmap();
+ try {
+ json.put("gravity", bitmapDrawable.getGravity());
+ json.put("tileModeX", bitmapDrawable.getTileModeX());
+ json.put("tileModeY", bitmapDrawable.getTileModeY());
+ if (Build.VERSION.SDK_INT >= 18) {
+ json.put("antialias", (Boolean) BitmapDrawable.class.getMethod("hasAntiAlias").invoke(bitmapDrawable));
+ json.put("mipMap", (Boolean) BitmapDrawable.class.getMethod("hasMipMap").invoke(bitmapDrawable));
+ }
+ if (Build.VERSION.SDK_INT >= 21) {
+ json.put("tintMode", (PorterDuff.Mode) BitmapDrawable.class.getMethod("getTintMode").invoke(bitmapDrawable));
+ ColorStateList tintList = (ColorStateList) BitmapDrawable.class.getMethod("getTint").invoke(bitmapDrawable);
+ if (tintList != null)
+ json.put("tintList", getColorStateList(tintList));
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
else
{
if (drawable instanceof ScaleDrawable)