diff options
author | Romain Guy <romainguy@android.com> | 2010-01-26 14:50:34 -0800 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2010-01-26 14:50:34 -0800 |
commit | 88f38d186bcba897ef4222d23515f127c77358aa (patch) | |
tree | 38eda9f951b86e5ba035581e719300cb6df94580 /src/com/android/launcher2/Utilities.java | |
parent | 06762ab54d64e84328d427403bb6074dfd0f630c (diff) | |
download | android_packages_apps_Trebuchet-88f38d186bcba897ef4222d23515f127c77358aa.tar.gz android_packages_apps_Trebuchet-88f38d186bcba897ef4222d23515f127c77358aa.tar.bz2 android_packages_apps_Trebuchet-88f38d186bcba897ef4222d23515f127c77358aa.zip |
Attempt to fix icons labels misalignment in Home.
Bug #2310188
Diffstat (limited to 'src/com/android/launcher2/Utilities.java')
-rw-r--r-- | src/com/android/launcher2/Utilities.java | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/com/android/launcher2/Utilities.java b/src/com/android/launcher2/Utilities.java index 94e281b41..f72bb1bb7 100644 --- a/src/com/android/launcher2/Utilities.java +++ b/src/com/android/launcher2/Utilities.java @@ -22,7 +22,6 @@ import android.graphics.drawable.PaintDrawable; import android.graphics.Bitmap; import android.graphics.BlurMaskFilter; import android.graphics.Canvas; -import android.graphics.MaskFilter; import android.graphics.Paint; import android.graphics.PaintFlagsDrawFilter; import android.graphics.PixelFormat; @@ -56,7 +55,6 @@ final class Utilities { private static final Paint sBlurPaint = new Paint(); private static final Paint sGlowColorPressedPaint = new Paint(); private static final Paint sGlowColorFocusedPaint = new Paint(); - private static final Paint sEmptyPaint = new Paint(); private static final Rect sBounds = new Rect(); private static final Rect sOldBounds = new Rect(); private static final Canvas sCanvas = new Canvas(); @@ -350,23 +348,27 @@ final class Utilities { static class BubbleText { private static final int MAX_LINES = 2; - private TextPaint mTextPaint; - private float mBubblePadding; - private RectF mBubbleRect = new RectF(); + private final TextPaint mTextPaint; - private float mTextWidth; - private int mLeading; - private int mFirstLineY; - private int mLineHeight; + private final float mBubblePadding; + private final RectF mBubbleRect = new RectF(); - private int mBitmapWidth; - private int mBitmapHeight; + private final float mTextWidth; + private final int mLeading; + private final int mFirstLineY; + private final int mLineHeight; + + private final int mBitmapWidth; + private final int mBitmapHeight; + private final int mDensity; BubbleText(Context context) { final Resources resources = context.getResources(); - final float scale = resources.getDisplayMetrics().density; + final DisplayMetrics metrics = resources.getDisplayMetrics(); + final float scale = metrics.density; + mDensity = metrics.densityDpi; final float paddingLeft = 5.0f * scale; final float paddingRight = 5.0f * scale; @@ -381,10 +383,6 @@ final class Utilities { mTextWidth = bubbleWidth - mBubblePadding - mBubblePadding; - Paint rectPaint = new Paint(); - rectPaint.setColor(0xff000000); - rectPaint.setAntiAlias(true); - TextPaint textPaint = mTextPaint = new TextPaint(); textPaint.setTypeface(Typeface.DEFAULT); textPaint.setTextSize(13*scale); @@ -416,6 +414,7 @@ final class Utilities { /** You own the bitmap after this and you must call recycle on it. */ Bitmap createTextBitmap(String text) { Bitmap b = Bitmap.createBitmap(mBitmapWidth, mBitmapHeight, Bitmap.Config.ALPHA_8); + b.setDensity(mDensity); Canvas c = new Canvas(b); StaticLayout layout = new StaticLayout(text, mTextPaint, (int)mTextWidth, @@ -432,11 +431,11 @@ final class Utilities { for (int i=0; i<lineCount; i++) { //int x = (int)((mBubbleRect.width() - layout.getLineMax(i)) / 2.0f); //int y = mFirstLineY + (i * mLineHeight); + final String lineText = text.substring(layout.getLineStart(i), layout.getLineEnd(i)); int x = (int)(mBubbleRect.left - + ((mBubbleRect.width() - layout.getLineMax(i)) / 2.0f)); + + ((mBubbleRect.width() - mTextPaint.measureText(lineText)) * 0.5f)); int y = mFirstLineY + (i * mLineHeight); - c.drawText(text.substring(layout.getLineStart(i), layout.getLineEnd(i)), - x, y, mTextPaint); + c.drawText(lineText, x, y, mTextPaint); } return b; |