Skip to content

Commit 662b989

Browse files
author
Saumya Mukul
committed
Fix edit box font size and padding
1 parent 72c558e commit 662b989

File tree

2 files changed

+17
-29
lines changed

2 files changed

+17
-29
lines changed

cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBox.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public class Cocos2dxEditBox extends EditText {
121121

122122
private static final int kTextVerticalAlignmentTop = 0;
123123
private static final int kTextVerticalAlignmentCenter = 1;
124-
private static final int getkTextVerticalAlignmentBottom = 2;
124+
private static final int kTextVerticalAlignmentBottom = 2;
125125

126126
private int mInputFlagConstraints;
127127
private int mInputModeConstraints;
@@ -201,7 +201,7 @@ public void setTextHorizontalAlignment(int alignment) {
201201
gravity = gravity | Gravity.LEFT;
202202
break;
203203
case kTextHorizontalAlignmentCenter:
204-
gravity = gravity | Gravity.CENTER;
204+
gravity = gravity | Gravity.CENTER_HORIZONTAL;
205205
break;
206206
case kTextHorizontalAlignmentRight:
207207
gravity = gravity | Gravity.RIGHT;
@@ -215,18 +215,22 @@ public void setTextHorizontalAlignment(int alignment) {
215215

216216
public void setTextVerticalAlignment(int alignment) {
217217
int gravity = this.getGravity();
218+
int padding = Cocos2dxEditBoxHelper.getPadding(mScaleX);
218219
switch (alignment) {
219220
case kTextVerticalAlignmentTop:
220-
gravity = gravity | Gravity.TOP;
221+
setPadding(padding, 3*padding/4, 0, 0);
222+
gravity = Gravity.TOP;
221223
break;
222224
case kTextVerticalAlignmentCenter:
223-
gravity = gravity | Gravity.CENTER_VERTICAL;
225+
setPadding(padding, 0, 0, padding/2);
226+
gravity = Gravity.CENTER_VERTICAL;
224227
break;
225-
case getkTextVerticalAlignmentBottom:
226-
gravity = gravity | Gravity.BOTTOM;
228+
case kTextVerticalAlignmentBottom:
229+
//TODO: Add appropriate padding when this alignment is used
230+
gravity =Gravity.BOTTOM;
227231
break;
228232
default:
229-
gravity = gravity | Gravity.CENTER_VERTICAL;
233+
gravity = Gravity.CENTER_VERTICAL;
230234
break;
231235
}
232236

@@ -265,7 +269,6 @@ public void setInputMode(int inputMode){
265269
}
266270

267271
this.setInputType(this.mInputModeConstraints | this.mInputFlagConstraints);
268-
269272
}
270273

271274
@Override

cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxEditBoxHelper.java

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class Cocos2dxEditBoxHelper {
5151

5252
private static SparseArray<Cocos2dxEditBox> mEditBoxArray;
5353
private static int mViewTag = 0;
54-
54+
private static float mPadding = 5.0f;
5555
//Call native methods
5656
private static native void editBoxEditingDidBegin(int index);
5757
public static void __editBoxEditingDidBegin(int index){
@@ -76,14 +76,8 @@ public Cocos2dxEditBoxHelper(ResizeLayout layout) {
7676
Cocos2dxEditBoxHelper.mEditBoxArray = new SparseArray<Cocos2dxEditBox>();
7777
}
7878

79-
public static int convertToSP(float point){
80-
Resources r = mCocos2dxActivity.getResources();
81-
82-
int convertedValue = (int)TypedValue.applyDimension(
83-
TypedValue.COMPLEX_UNIT_SP, point, r.getDisplayMetrics());
84-
85-
return convertedValue;
86-
79+
public static int getPadding(float scaleX){
80+
return (int)(mPadding*scaleX);
8781
}
8882

8983
public static int createEditBox(final int left, final int top, final int width, final int height, final float scaleX) {
@@ -103,16 +97,7 @@ public void run() {
10397
editBox.setTextColor(Color.WHITE);
10498
editBox.setSingleLine();
10599
editBox.setOpenGLViewScaleX(scaleX);
106-
Resources r = mCocos2dxActivity.getResources();
107-
float density = r.getDisplayMetrics().density;
108-
int paddingBottom = (int)(height * 0.33f / density);
109-
paddingBottom = convertToSP(paddingBottom - 5 * scaleX / density);
110-
paddingBottom = paddingBottom / 2;
111-
int paddingTop = paddingBottom;
112-
int paddingLeft = (int)(5 * scaleX / density);
113-
paddingLeft = convertToSP(paddingLeft);
114-
115-
editBox.setPadding(paddingLeft,paddingTop, 0, paddingBottom);
100+
editBox.setPadding(getPadding(scaleX), 0, 0, 0);
116101

117102

118103
FrameLayout.LayoutParams lParams = new FrameLayout.LayoutParams(
@@ -268,8 +253,8 @@ public void run() {
268253
if (fontSize >= 0){
269254
float density = mCocos2dxActivity.getResources().getDisplayMetrics().density;
270255
// Log.e("XXX", "density is " + density);
271-
editBox.setTextSize(TypedValue.COMPLEX_UNIT_SP,
272-
fontSize / density );
256+
editBox.setTextSize(TypedValue.COMPLEX_UNIT_PX,
257+
fontSize);
273258
}
274259
editBox.setTypeface(tf);
275260
}

0 commit comments

Comments
 (0)