summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2011-06-14 16:23:06 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-06-14 16:23:06 -0700
commite460e6d7181282937fc79119e3271bb8a80cffcf (patch)
treed2a8288e92876d4f564fae10dc00f0dd505f994f /graphics
parent051d16ebec491f7ab504672f561e97b7e850eb1e (diff)
parentc0053223bedf33581b0830fb87be32c1f26e5372 (diff)
downloadframeworks_base-e460e6d7181282937fc79119e3271bb8a80cffcf.zip
frameworks_base-e460e6d7181282937fc79119e3271bb8a80cffcf.tar.gz
frameworks_base-e460e6d7181282937fc79119e3271bb8a80cffcf.tar.bz2
Merge "Add View.getResolvedLayoutDirection()"
Diffstat (limited to 'graphics')
-rw-r--r--graphics/java/android/graphics/drawable/BitmapDrawable.java4
-rw-r--r--graphics/java/android/graphics/drawable/ClipDrawable.java4
-rw-r--r--graphics/java/android/graphics/drawable/Drawable.java17
-rw-r--r--graphics/java/android/graphics/drawable/ScaleDrawable.java4
4 files changed, 18 insertions, 11 deletions
diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java
index 311f024..a4734ff 100644
--- a/graphics/java/android/graphics/drawable/BitmapDrawable.java
+++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java
@@ -30,6 +30,7 @@ import android.graphics.BitmapShader;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.view.Gravity;
+import android.view.View;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -386,8 +387,9 @@ public class BitmapDrawable extends Drawable {
Shader shader = state.mPaint.getShader();
if (shader == null) {
if (mApplyGravity) {
+ final int layoutDirection = getResolvedLayoutDirectionSelf();
Gravity.apply(state.mGravity, mBitmapWidth, mBitmapHeight,
- getBounds(), mDstRect, isLayoutRtlSelf());
+ getBounds(), mDstRect, layoutDirection);
mApplyGravity = false;
}
canvas.drawBitmap(bitmap, null, mDstRect, state.mPaint);
diff --git a/graphics/java/android/graphics/drawable/ClipDrawable.java b/graphics/java/android/graphics/drawable/ClipDrawable.java
index 83020aa..29edc04 100644
--- a/graphics/java/android/graphics/drawable/ClipDrawable.java
+++ b/graphics/java/android/graphics/drawable/ClipDrawable.java
@@ -24,6 +24,7 @@ import android.content.res.TypedArray;
import android.graphics.*;
import android.view.Gravity;
import android.util.AttributeSet;
+import android.view.View;
import java.io.IOException;
@@ -209,7 +210,8 @@ public class ClipDrawable extends Drawable implements Drawable.Callback {
if ((mClipState.mOrientation & VERTICAL) != 0) {
h -= (h - ih) * (10000 - level) / 10000;
}
- Gravity.apply(mClipState.mGravity, w, h, bounds, r, isLayoutRtlSelf());
+ final int layoutDirection = getResolvedLayoutDirectionSelf();
+ Gravity.apply(mClipState.mGravity, w, h, bounds, r, layoutDirection);
if (w > 0 && h > 0) {
canvas.save();
diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java
index 8994efc..72d233a 100644
--- a/graphics/java/android/graphics/drawable/Drawable.java
+++ b/graphics/java/android/graphics/drawable/Drawable.java
@@ -36,6 +36,7 @@ import android.util.DisplayMetrics;
import android.util.StateSet;
import android.util.TypedValue;
import android.util.Xml;
+import android.view.View;
import java.io.IOException;
import java.io.InputStream;
@@ -292,11 +293,11 @@ public abstract class Drawable {
*/
public static interface Callback2 extends Callback {
/**
- * A Drawable can call this to know whether the <var>who</var> is in RTL layout direction.
+ * A Drawable can call this to get the resolved layout direction of the <var>who</var>.
*
- * @param who The drawable being unscheduled.
+ * @param who The drawable being queried.
*/
- public boolean isLayoutRtl(Drawable who);
+ public int getResolvedLayoutDirection(Drawable who);
}
/**
@@ -376,15 +377,15 @@ public abstract class Drawable {
}
/**
- * Use the current {@link android.graphics.drawable.Drawable.Callback2} implementation to know
- * if this Drawable is having a layout in RTL direction.
+ * Use the current {@link android.graphics.drawable.Drawable.Callback2} implementation to get
+ * the resolved layout direction of this Drawable.
*/
- public boolean isLayoutRtlSelf() {
+ public int getResolvedLayoutDirectionSelf() {
final Callback callback = getCallback();
if (callback == null || !(callback instanceof Callback2)) {
- return false;
+ return View.LAYOUT_DIRECTION_LTR;
}
- return ((Callback2) callback).isLayoutRtl(this);
+ return ((Callback2) callback).getResolvedLayoutDirection(this);
}
/**
diff --git a/graphics/java/android/graphics/drawable/ScaleDrawable.java b/graphics/java/android/graphics/drawable/ScaleDrawable.java
index cbe1f2d..5fd5a16 100644
--- a/graphics/java/android/graphics/drawable/ScaleDrawable.java
+++ b/graphics/java/android/graphics/drawable/ScaleDrawable.java
@@ -24,6 +24,7 @@ import android.content.res.TypedArray;
import android.graphics.*;
import android.view.Gravity;
import android.util.AttributeSet;
+import android.view.View;
import java.io.IOException;
@@ -221,7 +222,8 @@ public class ScaleDrawable extends Drawable implements Drawable.Callback {
final int ih = min ? mScaleState.mDrawable.getIntrinsicHeight() : 0;
h -= (int) ((h - ih) * (10000 - level) * mScaleState.mScaleHeight / 10000);
}
- Gravity.apply(mScaleState.mGravity, w, h, bounds, r, isLayoutRtlSelf());
+ final int layoutDirection = getResolvedLayoutDirectionSelf();
+ Gravity.apply(mScaleState.mGravity, w, h, bounds, r, layoutDirection);
if (w > 0 && h > 0) {
mScaleState.mDrawable.setBounds(r.left, r.top, r.right, r.bottom);