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)
This commit is contained in:
Android (Google) Code Review
2009-07-21 17:39:05 -07:00
6 changed files with 29 additions and 23 deletions

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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) {

View File

@ -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);
}
}

View File

@ -552,10 +552,10 @@ public final class Rect implements Parcelable {
*/
public void scale(float scale) {
if (scale != 1.0f) {
left *= scale;
top *= scale;
right *= scale;
bottom*= scale;
left = (int) (left * scale + 0.5f);
top = (int) (top * scale + 0.5f);
right = (int) (right * scale + 0.5f);
bottom = (int) (bottom * scale + 0.5f);
}
}
}