diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-21 17:39:05 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-07-21 17:39:05 -0700 |
commit | fe6f45c81463d2d28e11ac6083f2653e1286c5ef (patch) | |
tree | c36eedf29fba7b3d4ba4dbfd937dee56e1dcdb0b /core | |
parent | 74cb705f0c1ee5ccb598b2b676aa50a36e6af7f9 (diff) | |
parent | 61324e58c549670c015010d0be14c6af76e3e9f7 (diff) | |
download | frameworks_base-fe6f45c81463d2d28e11ac6083f2653e1286c5ef.zip frameworks_base-fe6f45c81463d2d28e11ac6083f2653e1286c5ef.tar.gz frameworks_base-fe6f45c81463d2d28e11ac6083f2653e1286c5ef.tar.bz2 |
Merge change 8098 into donut
* changes:
cast is floor. Use round instead. This fixes a few layout issues (that was due to smaller widnow size)
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/content/res/CompatibilityInfo.java | 4 | ||||
-rw-r--r-- | core/java/android/util/DisplayMetrics.java | 16 | ||||
-rw-r--r-- | core/java/android/view/SurfaceView.java | 4 | ||||
-rw-r--r-- | core/java/android/view/ViewRoot.java | 12 | ||||
-rw-r--r-- | core/java/android/view/WindowManager.java | 8 |
5 files changed, 25 insertions, 19 deletions
diff --git a/core/java/android/content/res/CompatibilityInfo.java b/core/java/android/content/res/CompatibilityInfo.java index 6e34cc8..2805bd5 100644 --- a/core/java/android/content/res/CompatibilityInfo.java +++ b/core/java/android/content/res/CompatibilityInfo.java @@ -342,8 +342,8 @@ public class CompatibilityInfo { public static void updateCompatibleScreenFrame(DisplayMetrics dm, int orientation, Rect outRect) { int width = dm.widthPixels; - int portraitHeight = (int) (DEFAULT_PORTRAIT_HEIGHT * dm.density); - int portraitWidth = (int) (DEFAULT_PORTRAIT_WIDTH * dm.density); + int portraitHeight = (int) (DEFAULT_PORTRAIT_HEIGHT * dm.density + 0.5f); + int portraitWidth = (int) (DEFAULT_PORTRAIT_WIDTH * dm.density + 0.5f); if (orientation == Configuration.ORIENTATION_LANDSCAPE) { int xOffset = (width - portraitHeight) / 2 ; outRect.set(xOffset, 0, xOffset + portraitHeight, portraitWidth); diff --git a/core/java/android/util/DisplayMetrics.java b/core/java/android/util/DisplayMetrics.java index bfab49d..38d99b3 100644 --- a/core/java/android/util/DisplayMetrics.java +++ b/core/java/android/util/DisplayMetrics.java @@ -136,15 +136,19 @@ public class DisplayMetrics { int defaultHeight; switch (orientation) { case Configuration.ORIENTATION_LANDSCAPE: { - defaultWidth = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_HEIGHT * density); - defaultHeight = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_WIDTH * density); + defaultWidth = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_HEIGHT * density + + 0.5f); + defaultHeight = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_WIDTH * density + + 0.5f); break; } case Configuration.ORIENTATION_PORTRAIT: case Configuration.ORIENTATION_SQUARE: default: { - defaultWidth = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_WIDTH * density); - defaultHeight = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_HEIGHT * density); + defaultWidth = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_WIDTH * density + + 0.5f); + defaultHeight = (int)(CompatibilityInfo.DEFAULT_PORTRAIT_HEIGHT * density + + 0.5f); break; } case Configuration.ORIENTATION_UNDEFINED: { @@ -172,8 +176,8 @@ public class DisplayMetrics { scaledDensity *= invertedRatio; xdpi *= invertedRatio; ydpi *= invertedRatio; - widthPixels *= invertedRatio; - heightPixels *= invertedRatio; + widthPixels = (int) (widthPixels * invertedRatio + 0.5f); + heightPixels = (int) (heightPixels * invertedRatio + 0.5f); } } diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index aa701af..fdc0c16 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -309,8 +309,8 @@ public class SurfaceView extends View { // Use original size if the app specified the size of the view, // and let the flinger to scale up. if (mRequestedWidth <= 0 && mTranslator != null) { - myWidth *= appScale; - myHeight *= appScale; + myWidth = (int) (myWidth * appScale + 0.5f); + myHeight = (int) (myHeight * appScale + 0.5f); mScaled = true; } else { mScaled = false; diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 301d604..049b44f 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -907,7 +907,8 @@ public final class ViewRoot extends Handler implements ViewParent, mHeight = frame.height(); if (initialized) { - mGlCanvas.setViewport((int) (mWidth * appScale), (int) (mHeight * appScale)); + mGlCanvas.setViewport((int) (mWidth * appScale + 0.5f), + (int) (mHeight * appScale + 0.5f)); } boolean focusChangedDueToTouchMode = ensureTouchModeLocally( @@ -1237,7 +1238,7 @@ public final class ViewRoot extends Handler implements ViewParent, if (fullRedrawNeeded) { mAttachInfo.mIgnoreDirtyState = true; - dirty.union(0, 0, (int) (mWidth * appScale), (int) (mHeight * appScale)); + dirty.union(0, 0, (int) (mWidth * appScale + 0.5f), (int) (mHeight * appScale + 0.5f)); } if (DEBUG_ORIENTATION || DEBUG_DRAW) { @@ -1749,7 +1750,8 @@ public final class ViewRoot extends Handler implements ViewParent, if (mGlCanvas != null) { float appScale = mAttachInfo.mApplicationScale; mGlCanvas.setViewport( - (int) (mWidth * appScale), (int) (mHeight * appScale)); + (int) (mWidth * appScale + 0.5f), + (int) (mHeight * appScale + 0.5f)); } } } @@ -2394,8 +2396,8 @@ public final class ViewRoot extends Handler implements ViewParent, } int relayoutResult = sWindowSession.relayout( mWindow, params, - (int) (mView.mMeasuredWidth * appScale), - (int) (mView.mMeasuredHeight * appScale), + (int) (mView.mMeasuredWidth * appScale + 0.5f), + (int) (mView.mMeasuredHeight * appScale + 0.5f), viewVisibility, insetsPending, mWinFrame, mPendingContentInsets, mPendingVisibleInsets, mSurface); if (restore) { diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 6a26a31..c0be9e8 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -991,13 +991,13 @@ public interface WindowManager extends ViewManager { * @hide */ public void scale(float scale) { - x *= scale; - y *= scale; + x = (int) (x * scale + 0.5f); + y = (int) (y * scale + 0.5f); if (width > 0) { - width *= scale; + width = (int) (width * scale + 0.5f); } if (height > 0) { - height *= scale; + height = (int) (height * scale + 0.5f); } } |