diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java b/tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java index af448e8..23bb6b4 100644 --- a/tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java +++ b/tests/HwAccelerationTest/src/com/android/test/hwui/ClipOutlineActivity.java @@ -25,6 +25,8 @@ import android.graphics.Outline; import android.graphics.Path; import android.graphics.Rect; import android.os.Bundle; +import android.view.View; +import android.view.ViewOutlineProvider; import android.widget.FrameLayout; import android.widget.TextView; @@ -58,11 +60,23 @@ public class ClipOutlineActivity extends Activity { public static class RegionView extends FrameLayout { private float mClipPosition = 0.0f; - private Outline mOutline = new Outline(); private Rect mRect = new Rect(); public RegionView(Context c) { super(c); + setOutlineProvider(new ViewOutlineProvider() { + + @Override + public void getOutline(View view, Outline outline) { + int w = getWidth() / 2; + int h = getHeight() / 2; + + mRect.set(0, 0, w, h); + mRect.offset((int) (mClipPosition * w), getHeight() / 4); + + outline.setRoundRect(mRect, w / 2); + } + }); setClipToOutline(true); } @@ -72,14 +86,7 @@ public class ClipOutlineActivity extends Activity { public void setClipPosition(float clipPosition) { mClipPosition = clipPosition; - int w = getWidth() / 2; - int h = getHeight() / 2; - - mRect.set(0, 0, w, h); - mRect.offset((int) (clipPosition * w), getHeight() / 4); - mOutline.setRoundRect(mRect, w / 2); - setOutline(mOutline); - invalidate(); + invalidateOutline(); } } |