summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-07-21 17:39:05 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-07-21 17:39:05 -0700
commitfe6f45c81463d2d28e11ac6083f2653e1286c5ef (patch)
treec36eedf29fba7b3d4ba4dbfd937dee56e1dcdb0b /core
parent74cb705f0c1ee5ccb598b2b676aa50a36e6af7f9 (diff)
parent61324e58c549670c015010d0be14c6af76e3e9f7 (diff)
downloadframeworks_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.java4
-rw-r--r--core/java/android/util/DisplayMetrics.java16
-rw-r--r--core/java/android/view/SurfaceView.java4
-rw-r--r--core/java/android/view/ViewRoot.java12
-rw-r--r--core/java/android/view/WindowManager.java8
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);
}
}