From 0967ef40368c4bc7a0576ecc3dc222a8fe9b94c3 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 16 Sep 2011 15:30:41 +0900 Subject: [PATCH] Draw more suggestions hint using text font Bug: 5287964 Change-Id: I692b5303268c7b5115853177c956e147312c582d --- .../drawable-hdpi/more_suggestions_hint.png | Bin 242 -> 0 bytes .../more_suggestions_hint_holo.png | Bin 242 -> 0 bytes .../drawable-mdpi/more_suggestions_hint.png | Bin 222 -> 0 bytes .../more_suggestions_hint_holo.png | Bin 222 -> 0 bytes .../drawable-xhdpi/more_suggestions_hint.png | Bin 310 -> 0 bytes .../more_suggestions_hint_holo.png | Bin 310 -> 0 bytes java/res/values-sw600dp/dimens.xml | 1 + java/res/values-sw768dp/dimens.xml | 1 + java/res/values/attrs.xml | 1 - java/res/values/dimens.xml | 1 + java/res/values/styles.xml | 2 -- .../inputmethod/latin/SuggestionsView.java | 27 +++++++++++++++++- 12 files changed, 29 insertions(+), 4 deletions(-) delete mode 100644 java/res/drawable-hdpi/more_suggestions_hint.png delete mode 100644 java/res/drawable-hdpi/more_suggestions_hint_holo.png delete mode 100644 java/res/drawable-mdpi/more_suggestions_hint.png delete mode 100644 java/res/drawable-mdpi/more_suggestions_hint_holo.png delete mode 100644 java/res/drawable-xhdpi/more_suggestions_hint.png delete mode 100644 java/res/drawable-xhdpi/more_suggestions_hint_holo.png diff --git a/java/res/drawable-hdpi/more_suggestions_hint.png b/java/res/drawable-hdpi/more_suggestions_hint.png deleted file mode 100644 index 93604752b08d4a809d339281853053b3a8312263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W}!3HEbPUl(xDaPU;cPEB*=VV?2If^B&5hcO- zX(i=}MX3z#MTrF&naR%id1a|ZC8njR-=5jj zFqGHXY=Ue@Inzg5g)+zBDGW#Y8!PN)?T`?d&+;hSVNG}5g0J-~5q--(@=Tf|F{#32 zQib-e#!C)=n6)DN(;f(|_~EUP<|-7<_NYE!XGBio3brG84rf}@6xao-opoLLja3!4 k9TsZ~ISjO#;s1YThC-&D-G4aO-v;qLUHx3vIVCg!0E`t=Bme*a diff --git a/java/res/drawable-hdpi/more_suggestions_hint_holo.png b/java/res/drawable-hdpi/more_suggestions_hint_holo.png deleted file mode 100644 index 93604752b08d4a809d339281853053b3a8312263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W}!3HEbPUl(xDaPU;cPEB*=VV?2If^B&5hcO- zX(i=}MX3z#MTrF&naR%id1a|ZC8njR-=5jj zFqGHXY=Ue@Inzg5g)+zBDGW#Y8!PN)?T`?d&+;hSVNG}5g0J-~5q--(@=Tf|F{#32 zQib-e#!C)=n6)DN(;f(|_~EUP<|-7<_NYE!XGBio3brG84rf}@6xao-opoLLja3!4 k9TsZ~ISjO#;s1YThC-&D-G4aO-v;qLUHx3vIVCg!0E`t=Bme*a diff --git a/java/res/drawable-mdpi/more_suggestions_hint.png b/java/res/drawable-mdpi/more_suggestions_hint.png deleted file mode 100644 index 7352810d3d5ca4cf4d5d6dc554930f09a8c1284e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~h!3HEx)yO>uQjEnx?oJHr&dIz4auiEkBT9nv z(@M${i&7cfixLYmGLxP2^U6|-N>YmyG(7W4QgbxR+kZ&{6=!?8IEGZrN&4~szdf_6 z#LUB7N1`&gDjFgreSJhamTr_Z_-W6wM4?l*p)1nir;o!QsgC{38x3|bUS8N`JmE;6 z!_hShYups-c#haF)N?d!VD9i;*p-mfs Q0&*EVUHx3vIVCg!0I$DFV*mgE diff --git a/java/res/drawable-mdpi/more_suggestions_hint_holo.png b/java/res/drawable-mdpi/more_suggestions_hint_holo.png deleted file mode 100644 index 7352810d3d5ca4cf4d5d6dc554930f09a8c1284e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0zk~h!3HEx)yO>uQjEnx?oJHr&dIz4auiEkBT9nv z(@M${i&7cfixLYmGLxP2^U6|-N>YmyG(7W4QgbxR+kZ&{6=!?8IEGZrN&4~szdf_6 z#LUB7N1`&gDjFgreSJhamTr_Z_-W6wM4?l*p)1nir;o!QsgC{38x3|bUS8N`JmE;6 z!_hShYups-c#haF)N?d!VD9i;*p-mfs Q0&*EVUHx3vIVCg!0I$DFV*mgE diff --git a/java/res/drawable-xhdpi/more_suggestions_hint.png b/java/res/drawable-xhdpi/more_suggestions_hint.png deleted file mode 100644 index 35fb4208784d06d58faf92c52d9e3fd99ff897db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^vOvtm!3HEf971(~6k~CayA#8@b22Z19K{mXh?3y^ zw370~qErU=qQruX%w*^Myt34ylGGvv4bQxi)Ev$7_Fs}f#fLpz978JRB>njR-=2A| z;a%M$X)6T;+LD$@X2Q9%*;klJs(>wf%8tjW7IBCOd1_&WI}oik3WV5Bi+LBpR2!uof^*G%Qe_ zwTm_4$_B=d)h4CyZs>?Q2k(&SPE?TTPn#jnS6V#rip}qSk@YXQL>qUobOHI2KO3J@=^yJCMuZ>FVdQ&MBb@ E0LTk*6#xJL diff --git a/java/res/drawable-xhdpi/more_suggestions_hint_holo.png b/java/res/drawable-xhdpi/more_suggestions_hint_holo.png deleted file mode 100644 index 35fb4208784d06d58faf92c52d9e3fd99ff897db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^vOvtm!3HEf971(~6k~CayA#8@b22Z19K{mXh?3y^ zw370~qErU=qQruX%w*^Myt34ylGGvv4bQxi)Ev$7_Fs}f#fLpz978JRB>njR-=2A| z;a%M$X)6T;+LD$@X2Q9%*;klJs(>wf%8tjW7IBCOd1_&WI}oik3WV5Bi+LBpR2!uof^*G%Qe_ zwTm_4$_B=d)h4CyZs>?Q2k(&SPE?TTPn#jnS6V#rip}qSk@YXQL>qUobOHI2KO3J@=^yJCMuZ>FVdQ&MBb@ E0LTk*6#xJL diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml index d02b4eaad..e1bdecfd9 100644 --- a/java/res/values-sw600dp/dimens.xml +++ b/java/res/values-sw600dp/dimens.xml @@ -76,4 +76,5 @@ 0.3in 12dip 22dip + 33dip diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml index bfc2593db..b825b1457 100644 --- a/java/res/values-sw768dp/dimens.xml +++ b/java/res/values-sw768dp/dimens.xml @@ -79,4 +79,5 @@ 46dip 8dip 22dip + 33dip diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 6e9461a33..e40cc95ab 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -132,7 +132,6 @@ - diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml index 8488c777b..16cccc62a 100644 --- a/java/res/values/dimens.xml +++ b/java/res/values/dimens.xml @@ -92,6 +92,7 @@ 44dip 6dip 18dip + 27dip 3 36 diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index 6aa967410..7b8bfa841 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -102,7 +102,6 @@ 50 @integer/suggestions_count_in_strip @integer/center_suggestion_percentile - @drawable/more_suggestions_hint @integer/max_more_suggestions_row @fraction/min_more_suggestions_width @@ -284,7 +283,6 @@ 70 @integer/suggestions_count_in_strip @integer/center_suggestion_percentile - @drawable/more_suggestions_hint_holo @integer/max_more_suggestions_row @fraction/min_more_suggestions_width diff --git a/java/src/com/android/inputmethod/latin/SuggestionsView.java b/java/src/com/android/inputmethod/latin/SuggestionsView.java index 13beb4479..6fc790030 100644 --- a/java/src/com/android/inputmethod/latin/SuggestionsView.java +++ b/java/src/com/android/inputmethod/latin/SuggestionsView.java @@ -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;