Draw more suggestions hint using text font
Bug: 5287964 Change-Id: I692b5303268c7b5115853177c956e147312c582dmain
parent
436a645ea8
commit
0967ef4036
Binary file not shown.
Before Width: | Height: | Size: 242 B |
Binary file not shown.
Before Width: | Height: | Size: 242 B |
Binary file not shown.
Before Width: | Height: | Size: 222 B |
Binary file not shown.
Before Width: | Height: | Size: 222 B |
Binary file not shown.
Before Width: | Height: | Size: 310 B |
Binary file not shown.
Before Width: | Height: | Size: 310 B |
|
@ -76,4 +76,5 @@
|
|||
<dimen name="suggestion_min_width">0.3in</dimen>
|
||||
<dimen name="suggestion_padding">12dip</dimen>
|
||||
<dimen name="suggestion_text_size">22dip</dimen>
|
||||
<dimen name="more_suggestions_hint_text_size">33dip</dimen>
|
||||
</resources>
|
||||
|
|
|
@ -79,4 +79,5 @@
|
|||
<dimen name="suggestion_min_width">46dip</dimen>
|
||||
<dimen name="suggestion_padding">8dip</dimen>
|
||||
<dimen name="suggestion_text_size">22dip</dimen>
|
||||
<dimen name="more_suggestions_hint_text_size">33dip</dimen>
|
||||
</resources>
|
||||
|
|
|
@ -132,7 +132,6 @@
|
|||
<attr name="alphaObsoleted" format="integer" />
|
||||
<attr name="suggestionsCountInStrip" format="integer" />
|
||||
<attr name="centerSuggestionPercentile" format="integer" />
|
||||
<attr name="moreSuggestionsHint" format="reference" />
|
||||
<attr name="maxMoreSuggestionsRow" format="integer" />
|
||||
<attr name="minMoreSuggestionsWidth" format="float" />
|
||||
</declare-styleable>
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
<dimen name="suggestion_min_width">44dip</dimen>
|
||||
<dimen name="suggestion_padding">6dip</dimen>
|
||||
<dimen name="suggestion_text_size">18dip</dimen>
|
||||
<dimen name="more_suggestions_hint_text_size">27dip</dimen>
|
||||
<integer name="suggestions_count_in_strip">3</integer>
|
||||
<integer name="center_suggestion_percentile">36</integer>
|
||||
|
||||
|
|
|
@ -102,7 +102,6 @@
|
|||
<item name="alphaObsoleted">50</item>
|
||||
<item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
|
||||
<item name="centerSuggestionPercentile">@integer/center_suggestion_percentile</item>
|
||||
<item name="moreSuggestionsHint">@drawable/more_suggestions_hint</item>
|
||||
<item name="maxMoreSuggestionsRow">@integer/max_more_suggestions_row</item>
|
||||
<item name="minMoreSuggestionsWidth">@fraction/min_more_suggestions_width</item>
|
||||
</style>
|
||||
|
@ -284,7 +283,6 @@
|
|||
<item name="alphaObsoleted">70</item>
|
||||
<item name="suggestionsCountInStrip">@integer/suggestions_count_in_strip</item>
|
||||
<item name="centerSuggestionPercentile">@integer/center_suggestion_percentile</item>
|
||||
<item name="moreSuggestionsHint">@drawable/more_suggestions_hint_holo</item>
|
||||
<item name="maxMoreSuggestionsRow">@integer/max_more_suggestions_row</item>
|
||||
<item name="minMoreSuggestionsWidth">@fraction/min_more_suggestions_width</item>
|
||||
</style>
|
||||
|
|
|
@ -19,8 +19,14 @@ package com.android.inputmethod.latin;
|
|||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Paint;
|
||||
import android.graphics.Paint.Align;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.Typeface;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Message;
|
||||
import android.os.SystemClock;
|
||||
|
@ -167,6 +173,7 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
|
|||
private final float mCenterSuggestionWeight;
|
||||
private final int mCenterSuggestionIndex;
|
||||
private final Drawable mMoreSuggestionsHint;
|
||||
private static final String MORE_SUGGESTIONS_HINT = "\u2026";
|
||||
|
||||
private static final CharacterStyle BOLD_SPAN = new StyleSpan(Typeface.BOLD);
|
||||
private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
|
||||
|
@ -225,7 +232,6 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
|
|||
mCenterSuggestionWeight = getPercent(a,
|
||||
R.styleable.SuggestionsView_centerSuggestionPercentile,
|
||||
DEFAULT_CENTER_SUGGESTION_PERCENTILE);
|
||||
mMoreSuggestionsHint = a.getDrawable(R.styleable.SuggestionsView_moreSuggestionsHint);
|
||||
mMaxMoreSuggestionsRow = a.getInt(
|
||||
R.styleable.SuggestionsView_maxMoreSuggestionsRow,
|
||||
DEFAULT_MAX_MORE_SUGGESTIONS_ROW);
|
||||
|
@ -233,6 +239,8 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
|
|||
R.styleable.SuggestionsView_minMoreSuggestionsWidth);
|
||||
a.recycle();
|
||||
|
||||
mMoreSuggestionsHint = getMoreSuggestionsHint(res,
|
||||
res.getDimension(R.dimen.more_suggestions_hint_text_size), mColorAutoCorrect);
|
||||
mCenterSuggestionIndex = mSuggestionsCountInStrip / 2;
|
||||
mMoreSuggestionsBottomGap = res.getDimensionPixelOffset(
|
||||
R.dimen.more_suggestions_bottom_gap);
|
||||
|
@ -246,6 +254,23 @@ public class SuggestionsView extends RelativeLayout implements OnClickListener,
|
|||
mHintToSaveText = context.getText(R.string.hint_add_to_dictionary);
|
||||
}
|
||||
|
||||
private static Drawable getMoreSuggestionsHint(Resources res, float textSize, int color) {
|
||||
final Paint paint = new Paint();
|
||||
paint.setAntiAlias(true);
|
||||
paint.setTextAlign(Align.CENTER);
|
||||
paint.setTextSize(textSize);
|
||||
paint.setColor(color);
|
||||
final Rect bounds = new Rect();
|
||||
paint.getTextBounds(MORE_SUGGESTIONS_HINT, 0, 1, bounds);
|
||||
final int width = Math.round(bounds.width() + 0.5f);
|
||||
final int height = Math.round(bounds.height() + 0.5f);
|
||||
final Bitmap buffer = Bitmap.createBitmap(
|
||||
width, (height * 3 / 2), Bitmap.Config.ARGB_8888);
|
||||
final Canvas canvas = new Canvas(buffer);
|
||||
canvas.drawText(MORE_SUGGESTIONS_HINT, width / 2, height, paint);
|
||||
return new BitmapDrawable(res, buffer);
|
||||
}
|
||||
|
||||
// Read integer value in TypedArray as percent.
|
||||
private static float getPercent(TypedArray a, int index, int defValue) {
|
||||
return a.getInt(index, defValue) / 100.0f;
|
||||
|
|
Loading…
Reference in New Issue