From 7b63063625467baff1db048e84c5781408a5c86d Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Fri, 4 Oct 2013 11:44:51 -0700 Subject: [PATCH] Fix font scaling issues in FastScroller and SubtitleView BUG: 11080227 Change-Id: I0aa84e9b56c6900ad47efd45a5a0f772ce43f810 --- core/java/android/widget/FastScroller.java | 5 +++-- core/java/com/android/internal/widget/SubtitleView.java | 15 +++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/core/java/android/widget/FastScroller.java b/core/java/android/widget/FastScroller.java index e2f6d7d3712a..a70bcdbfca3e 100644 --- a/core/java/android/widget/FastScroller.java +++ b/core/java/android/widget/FastScroller.java @@ -33,6 +33,7 @@ import android.text.TextUtils.TruncateAt; import android.util.IntProperty; import android.util.MathUtils; import android.util.Property; +import android.util.TypedValue; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; @@ -471,11 +472,11 @@ class FastScroller { final Resources res = context.getResources(); final int minSize = res.getDimensionPixelSize(R.dimen.fastscroll_overlay_size); final ColorStateList textColor = ta.getColorStateList(TEXT_COLOR); - final float textSize = res.getDimension(R.dimen.fastscroll_overlay_text_size); + final float textSize = res.getDimensionPixelSize(R.dimen.fastscroll_overlay_text_size); final TextView textView = new TextView(context); textView.setLayoutParams(params); textView.setTextColor(textColor); - textView.setTextSize(textSize); + textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); textView.setSingleLine(true); textView.setEllipsize(TruncateAt.MIDDLE); textView.setGravity(Gravity.CENTER); diff --git a/core/java/com/android/internal/widget/SubtitleView.java b/core/java/com/android/internal/widget/SubtitleView.java index e30c1ff37463..ccedf63ca9d5 100644 --- a/core/java/com/android/internal/widget/SubtitleView.java +++ b/core/java/com/android/internal/widget/SubtitleView.java @@ -113,10 +113,10 @@ public class SubtitleView extends View { // TODO: Move these to a default style. final Resources res = getContext().getResources(); final DisplayMetrics m = res.getDisplayMetrics(); - mCornerRadius = res.getDimension(com.android.internal.R.dimen.subtitle_corner_radius); - mOutlineWidth = res.getDimension(com.android.internal.R.dimen.subtitle_outline_width); - mShadowRadius = res.getDimension(com.android.internal.R.dimen.subtitle_shadow_radius); - mShadowOffsetX = res.getDimension(com.android.internal.R.dimen.subtitle_shadow_offset); + mCornerRadius = res.getDimensionPixelSize(com.android.internal.R.dimen.subtitle_corner_radius); + mOutlineWidth = res.getDimensionPixelSize(com.android.internal.R.dimen.subtitle_outline_width); + mShadowRadius = res.getDimensionPixelSize(com.android.internal.R.dimen.subtitle_shadow_radius); + mShadowOffsetX = res.getDimensionPixelSize(com.android.internal.R.dimen.subtitle_shadow_offset); mShadowOffsetY = mShadowOffsetX; mTextPaint = new TextPaint(); @@ -169,9 +169,12 @@ public class SubtitleView extends View { invalidate(); } + /** + * Sets the text size in pixels. + * + * @param size the text size in pixels + */ public void setTextSize(float size) { - final DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); - final float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, size, metrics); if (mTextPaint.getTextSize() != size) { mTextPaint.setTextSize(size); mInnerPaddingX = (int) (size * INNER_PADDING_RATIO + 0.5f); -- 2.11.0