diff options
Diffstat (limited to 'core/java/android/view')
-rw-r--r-- | core/java/android/view/Display.java | 1 | ||||
-rw-r--r-- | core/java/android/view/DisplayInfo.java | 18 | ||||
-rw-r--r-- | core/java/android/view/ViewRootImpl.java | 9 |
3 files changed, 14 insertions, 14 deletions
diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 46e4d6e..6fd5b01 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -21,7 +21,6 @@ import android.graphics.PixelFormat; import android.graphics.Point; import android.graphics.Rect; import android.hardware.display.DisplayManager; -import android.os.RemoteException; import android.os.SystemClock; import android.util.DisplayMetrics; import android.util.Log; diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java index 69b6d67..c65ce63 100644 --- a/core/java/android/view/DisplayInfo.java +++ b/core/java/android/view/DisplayInfo.java @@ -102,10 +102,10 @@ public final class DisplayInfo implements Parcelable { public float refreshRate; /** - * The logical display density which represents the scaling factor for - * the Density Independent Pixel unit. + * The logical display density which is the basis for density-independent + * pixels. */ - public float logicalDensity; + public int logicalDensityDpi; /** * The exact physical pixels per inch of the screen in the X dimension. @@ -158,7 +158,7 @@ public final class DisplayInfo implements Parcelable { logicalHeight = other.logicalHeight; rotation = other.rotation; refreshRate = other.refreshRate; - logicalDensity = other.logicalDensity; + logicalDensityDpi = other.logicalDensityDpi; physicalXDpi = other.physicalXDpi; physicalYDpi = other.physicalYDpi; } @@ -174,7 +174,7 @@ public final class DisplayInfo implements Parcelable { logicalHeight = source.readInt(); rotation = source.readInt(); refreshRate = source.readFloat(); - logicalDensity = source.readFloat(); + logicalDensityDpi = source.readInt(); physicalXDpi = source.readFloat(); physicalYDpi = source.readFloat(); } @@ -191,7 +191,7 @@ public final class DisplayInfo implements Parcelable { dest.writeInt(logicalHeight); dest.writeInt(rotation); dest.writeFloat(refreshRate); - dest.writeFloat(logicalDensity); + dest.writeInt(logicalDensityDpi); dest.writeFloat(physicalXDpi); dest.writeFloat(physicalYDpi); } @@ -206,12 +206,12 @@ public final class DisplayInfo implements Parcelable { private void getMetricsWithSize(DisplayMetrics outMetrics, CompatibilityInfoHolder cih, int width, int height) { - outMetrics.densityDpi = - (int)((logicalDensity * DisplayMetrics.DENSITY_DEFAULT) + .5f); + outMetrics.densityDpi = outMetrics.noncompatDensityDpi = logicalDensityDpi; outMetrics.noncompatWidthPixels = outMetrics.widthPixels = width; outMetrics.noncompatHeightPixels = outMetrics.heightPixels = height; - outMetrics.density = outMetrics.noncompatDensity = logicalDensity; + outMetrics.density = outMetrics.noncompatDensity = + logicalDensityDpi * DisplayMetrics.DENSITY_DEFAULT_SCALE; outMetrics.scaledDensity = outMetrics.noncompatScaledDensity = outMetrics.density; outMetrics.xdpi = outMetrics.noncompatXdpi = physicalXDpi; outMetrics.ydpi = outMetrics.noncompatYdpi = physicalYDpi; diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index befa0c0..1ad42f5 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -318,6 +318,7 @@ public final class ViewRootImpl implements ViewParent, HashSet<View> mTempHashSet; private final int mDensity; + private final int mNoncompatDensity; /** * Consistency verifier for debugging purposes. @@ -390,6 +391,7 @@ public final class ViewRootImpl implements ViewParent, mAttachInfo = new View.AttachInfo(sWindowSession, mWindow, this, mHandler, this); mViewConfiguration = ViewConfiguration.get(context); mDensity = context.getResources().getDisplayMetrics().densityDpi; + mNoncompatDensity = context.getResources().getDisplayMetrics().noncompatDensityDpi; mFallbackEventHandler = PolicyManager.makeNewFallbackEventHandler(context); mProfileRendering = Boolean.parseBoolean( SystemProperties.get(PROPERTY_PROFILE_RENDERING, "false")); @@ -2272,8 +2274,7 @@ public final class ViewRootImpl implements ViewParent, if (mTranslator != null) { mTranslator.translateCanvas(canvas); } - canvas.setScreenDensity(scalingRequired - ? DisplayMetrics.DENSITY_DEVICE : 0); + canvas.setScreenDensity(scalingRequired ? mNoncompatDensity : 0); attachInfo.mSetIgnoreDirtyState = false; mView.draw(canvas); @@ -2673,7 +2674,7 @@ public final class ViewRootImpl implements ViewParent, CompatibilityInfo ci = mCompatibilityInfo.getIfNeeded(); if (ci != null) { config = new Configuration(config); - ci.applyToConfiguration(config); + ci.applyToConfiguration(mNoncompatDensity, config); } synchronized (sConfigCallbacks) { @@ -2684,7 +2685,7 @@ public final class ViewRootImpl implements ViewParent, if (mView != null) { // At this point the resources have been updated to // have the most recent config, whatever that is. Use - // the on in them which may be newer. + // the one in them which may be newer. config = mView.getResources().getConfiguration(); if (force || mLastConfiguration.diff(config) != 0) { mLastConfiguration.setTo(config); |