Repository: incubator-weex Updated Branches: refs/heads/master 6a5a621ac -> a59ddfe8d
+[android] add property include-font-padding to set whether the text includes extra top and bottom padding to make room for accents that go above the normal ascent and descent. Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/9baf4da4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/9baf4da4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/9baf4da4 Branch: refs/heads/master Commit: 9baf4da453198975cc9d8a1a9d22b891d04b834b Parents: 9d11a5d Author: misakuo <misa...@apache.org> Authored: Thu Mar 1 11:59:44 2018 +0800 Committer: misakuo <misa...@apache.org> Committed: Thu Mar 1 11:59:44 2018 +0800 ---------------------------------------------------------------------- .../src/main/java/com/taobao/weex/common/Constants.java | 1 + .../main/java/com/taobao/weex/dom/WXTextDomObject.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9baf4da4/android/sdk/src/main/java/com/taobao/weex/common/Constants.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java index 64b59c8..44924da 100644 --- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java +++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java @@ -201,6 +201,7 @@ public class Constants { String STRATEGY = "strategy"; String ALLOW_COPY_PASTE = "allowCopyPaste"; + String INCLUDE_FONT_PADDING = "includeFontPadding"; http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9baf4da4/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java index 6bb1feb..142b729 100644 --- a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java +++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java @@ -57,6 +57,7 @@ import com.taobao.weex.utils.TypefaceUtil; import com.taobao.weex.utils.WXDomUtils; import com.taobao.weex.utils.WXLogUtils; import com.taobao.weex.utils.WXResourceUtils; +import com.taobao.weex.utils.WXUtils; import java.util.Collections; import java.util.LinkedList; @@ -144,6 +145,7 @@ public class WXTextDomObject extends WXDomObject { private int mNumberOfLines = UNSET; private int mFontSize = UNSET; private int mLineHeight = UNSET; + private boolean mIncludeFontPadding = false; private float previousWidth = Float.NaN; private String mFontFamily = WXEnvironment.getGlobalFontFamilyName(); private String mText = null; @@ -279,6 +281,9 @@ public class WXTextDomObject extends WXDomObject { */ private void updateStyleAndText() { updateStyleImp(getStyles()); + if (getAttrs() != null && getAttrs().containsKey(Constants.Name.INCLUDE_FONT_PADDING)) { + mIncludeFontPadding = WXUtils.getBoolean(getAttrs().get(Constants.Name.INCLUDE_FONT_PADDING), false); + } mText = WXAttr.getValue(getAttrs()); } @@ -341,7 +346,7 @@ public class WXTextDomObject extends WXDomObject { forceRtl = direction.equals(Constants.Name.RTL); } layout = StaticLayoutProxy.create(spanned, mTextPaint, (int) Math.ceil(textWidth), - Layout.Alignment.ALIGN_NORMAL, 1, 0, false, forceRtl); + Layout.Alignment.ALIGN_NORMAL, 1, 0, mIncludeFontPadding, forceRtl); } else { layout = previousLayout; } @@ -361,7 +366,7 @@ public class WXTextDomObject extends WXDomObject { adjustSpansRange(spanned, builder); spanned = builder; return new StaticLayout(spanned, mTextPaint, (int) Math.ceil(textWidth), - Layout.Alignment.ALIGN_NORMAL, 1, 0, false); + Layout.Alignment.ALIGN_NORMAL, 1, 0, mIncludeFontPadding); } } return layout; @@ -405,7 +410,7 @@ public class WXTextDomObject extends WXDomObject { startOffset -= 1; } source.delete(startOffset, startOffset+1); - layout = new StaticLayout(source, paint, desired, Layout.Alignment.ALIGN_NORMAL, 1, 0, false); + layout = new StaticLayout(source, paint, desired, Layout.Alignment.ALIGN_NORMAL, 1, 0, mIncludeFontPadding); if (layout.getLineCount() <= 1) { ret = source; break;