summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2010-01-26 14:50:34 -0800
committerRomain Guy <romainguy@android.com>2010-01-26 14:50:34 -0800
commit88f38d186bcba897ef4222d23515f127c77358aa (patch)
tree38eda9f951b86e5ba035581e719300cb6df94580 /src
parent06762ab54d64e84328d427403bb6074dfd0f630c (diff)
downloadandroid_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')
-rw-r--r--src/com/android/launcher2/Utilities.java37
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;