引号是文本中不可选择的部分,我在其上设置了relativeSizeSpan(2f).结果几乎是我想要的.
s.setSpan(spanleft,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);s.setSpan(spanRight,s.length() - 1,s.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
但是,您可以看到更大的字体会导致更大的高度影响整条线.这在第一行上是不相关的,但在最后一行令人不快.我想知道这两个字符是否可以保持字体大小但是降低行高.
我想减少前导部分,以便第一行和最后一行与段落的其余部分具有一致的高度.我最高的愿望是将报价转化为基线,同时保持其外观.
你有什么建议吗?这可能通过一些跨度吗?我应该放弃吗?你看到任何解决方法吗?
我看到我可以使用引号创建两个png并使用ImageSpan(虽然我从未使用它并且不知道它是如何工作的),但它对我来说有点烦人(我不是真的很喜欢图形).
解决方法 我相信您必须实现自定义Span,只需将updateMeasureState保留为空:)尝试使用import androID.text.TextPaint;import androID.text.style.MetricAffectingSpan;public class TestSubScriptSpan extends MetricAffectingSpan { private final float mProportion; public TestSubScriptSpan(float proportion) { mProportion = proportion; } @OverrIDe public voID updateMeasureState(TextPaint p) { // DO nothing! } @OverrIDe public voID updateDrawState(TextPaint tp) { tp.setTextSize(tp.getTextSize() * mProportion); tp.baselineshift -= (int) (tp.ascent() / 2); }}
然后
TestSubScriptSpan tss = new TestSubScriptSpan(2.0f);s.setSpan(tss,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);s.setSpan(tss,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
注意你在updateDrawState()中所做的事情的顺序,因为它很重要.
总结以上是内存溢出为你收集整理的android – 在字符级别更改EditText中的行距/行高全部内容,希望文章能够帮你解决android – 在字符级别更改EditText中的行距/行高所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)