diff options
author | Romain Guy <romainguy@google.com> | 2010-08-09 20:48:09 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2010-08-10 12:22:01 -0700 |
commit | 61c8c9c5b2006d18e9310b6521c65b36ffe75ce4 (patch) | |
tree | f2a792387a3177a2e7a25290ec48bd79c62ef3e6 /graphics | |
parent | 8cc82c6f4802937309dce6cba310e31358cdf6bf (diff) | |
download | frameworks_base-61c8c9c5b2006d18e9310b6521c65b36ffe75ce4.zip frameworks_base-61c8c9c5b2006d18e9310b6521c65b36ffe75ce4.tar.gz frameworks_base-61c8c9c5b2006d18e9310b6521c65b36ffe75ce4.tar.bz2 |
Fix tons of bugs and add new text rendering support.
Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/Path.java | 13 | ||||
-rw-r--r-- | graphics/java/android/graphics/Region.java | 16 | ||||
-rw-r--r-- | graphics/java/android/graphics/drawable/GradientDrawable.java | 13 |
3 files changed, 25 insertions, 17 deletions
diff --git a/graphics/java/android/graphics/Path.java b/graphics/java/android/graphics/Path.java index cb2c6a2..8251881 100644 --- a/graphics/java/android/graphics/Path.java +++ b/graphics/java/android/graphics/Path.java @@ -24,6 +24,10 @@ package android.graphics; * text on a path. */ public class Path { + /** + * @hide + */ + public final int mNativePath; /** * Create an empty path @@ -537,8 +541,8 @@ public class Path { super.finalize(); } } - - /*package*/ final int ni() { + + final int ni() { return mNativePath; } @@ -592,9 +596,4 @@ public class Path { int dst_path); private static native void native_transform(int nPath, int matrix); private static native void finalizer(int nPath); - - /** - * @hide - */ - public final int mNativePath; } diff --git a/graphics/java/android/graphics/Region.java b/graphics/java/android/graphics/Region.java index 489ef83..e540806 100644 --- a/graphics/java/android/graphics/Region.java +++ b/graphics/java/android/graphics/Region.java @@ -20,6 +20,10 @@ import android.os.Parcel; import android.os.Parcelable; public class Region implements Parcelable { + /** + * @hide + */ + public final int mNativeRegion; // the native values for these must match up with the enum in SkRegion.h public enum Op { @@ -329,10 +333,14 @@ public class Region implements Parcelable { } protected void finalize() throws Throwable { - nativeDestructor(mNativeRegion); + try { + nativeDestructor(mNativeRegion); + } finally { + super.finalize(); + } } - /*package*/ Region(int ni) { + Region(int ni) { if (ni == 0) { throw new RuntimeException(); } @@ -345,7 +353,7 @@ public class Region implements Parcelable { this(ni); } - /*package*/ final int ni() { + final int ni() { return mNativeRegion; } @@ -374,6 +382,4 @@ public class Region implements Parcelable { Parcel p); private static native boolean nativeEquals(int native_r1, int native_r2); - - private final int mNativeRegion; } diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java index 33ecbea..88f6d43 100644 --- a/graphics/java/android/graphics/drawable/GradientDrawable.java +++ b/graphics/java/android/graphics/drawable/GradientDrawable.java @@ -313,18 +313,16 @@ public class GradientDrawable extends Drawable { case RECTANGLE: if (st.mRadiusArray != null) { mPath.reset(); - mPath.addRoundRect(mRect, st.mRadiusArray, - Path.Direction.CW); + mPath.addRoundRect(mRect, st.mRadiusArray, Path.Direction.CW); canvas.drawPath(mPath, mFillPaint); if (haveStroke) { canvas.drawPath(mPath, mStrokePaint); } - } - else { + } else if (st.mRadius > 0.0f) { // since the caller is only giving us 1 value, we will force // it to be square if the rect is too small in one dimension // to show it. If we did nothing, Skia would clamp the rad - // independently along each axis, giving us a thin ellips + // independently along each axis, giving us a thin ellipse // if the rect were very wide but not very tall float rad = st.mRadius; float r = Math.min(mRect.width(), mRect.height()) * 0.5f; @@ -335,6 +333,11 @@ public class GradientDrawable extends Drawable { if (haveStroke) { canvas.drawRoundRect(mRect, rad, rad, mStrokePaint); } + } else { + canvas.drawRect(mRect, mFillPaint); + if (haveStroke) { + canvas.drawRect(mRect, mStrokePaint); + } } break; case OVAL: |