diff options
author | Tony <twickham@google.com> | 2017-06-16 11:46:57 -0700 |
---|---|---|
committer | Tony <twickham@google.com> | 2017-06-16 11:46:57 -0700 |
commit | ad69fa4c7447879697587c2ed537ac5edb1f82a4 (patch) | |
tree | 1cc8341de87984c2cb316bda01e82f9f52961bea /src/com/android/launcher3/popup | |
parent | d74633cbc559109e57b0f4531fb6556e79d7a453 (diff) | |
download | android_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.tar.gz android_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.tar.bz2 android_packages_apps_Trebuchet-ad69fa4c7447879697587c2ed537ac5edb1f82a4.zip |
Round popup corner clipping rotation center
Before, it was possible for the rotation to occur around
a slightly off-center pivot on certain devices when the
display setting was set to "small."
Bug: 62049689
Change-Id: I5f2f557a1170cc98c0a83b87749526a4d7ea73f1
Diffstat (limited to 'src/com/android/launcher3/popup')
-rw-r--r-- | src/com/android/launcher3/popup/PopupItemView.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/com/android/launcher3/popup/PopupItemView.java b/src/com/android/launcher3/popup/PopupItemView.java index 05cadb671..8ec051b30 100644 --- a/src/com/android/launcher3/popup/PopupItemView.java +++ b/src/com/android/launcher3/popup/PopupItemView.java @@ -100,22 +100,24 @@ public abstract class PopupItemView extends FrameLayout { // Clip children to this item's rounded corners. int cornerWidth = mRoundedCornerBitmap.getWidth(); int cornerHeight = mRoundedCornerBitmap.getHeight(); + int cornerCenterX = Math.round(cornerWidth / 2f); + int cornerCenterY = Math.round(cornerHeight / 2f); if ((mRoundedCorners & ROUNDED_TOP_CORNERS) != 0) { // Clip top left corner. mMatrix.reset(); canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint); // Clip top right corner. - mMatrix.setRotate(90, cornerWidth / 2, cornerHeight / 2); + mMatrix.setRotate(90, cornerCenterX, cornerCenterY); mMatrix.postTranslate(canvas.getWidth() - cornerWidth, 0); canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint); } if ((mRoundedCorners & ROUNDED_BOTTOM_CORNERS) != 0) { // Clip bottom right corner. - mMatrix.setRotate(180, cornerWidth / 2, cornerHeight / 2); + mMatrix.setRotate(180, cornerCenterX, cornerCenterY); mMatrix.postTranslate(canvas.getWidth() - cornerWidth, canvas.getHeight() - cornerHeight); canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint); // Clip bottom left corner. - mMatrix.setRotate(270, cornerWidth / 2, cornerHeight / 2); + mMatrix.setRotate(270, cornerCenterX, cornerCenterY); mMatrix.postTranslate(0, canvas.getHeight() - cornerHeight); canvas.drawBitmap(mRoundedCornerBitmap, mMatrix, mBackgroundClipPaint); } |