进入第二行时如何减小文本大小?

Posted

技术标签:

【中文标题】进入第二行时如何减小文本大小?【英文标题】:How to reduce text size when it goes to second line? 【发布时间】:2014-08-07 07:32:42 【问题描述】:

假设我有textview 的大小是18sp,如果textview 进入第二行,如何减小textview 的大小? 有什么想法吗?

TextView text= (TextView)findViewById(R.id.text);
text.setTextSize(18);
//how to reduce text size if text goes to second line when it's too large?

提前致谢

【问题讨论】:

TextView size还是里面的textSize。因为sp 用于文本大小,dp 用于视图大小。 如果您想减小文本大小而不是添加文本观察器,并且在该 onTextChanged 方法中,您可以使用 textView.getLineCount() 检查行数是否大于 1,并且可以更改文本大小。 @KunalK 请你简单解释一下。 请仔细阅读我的答案,它会很有效..!! @Shadow 请看答案。 【参考方案1】:

这是您问题的完整解决方案。 Check out this link

It will automatically reduce the font size if size of your text value is greater than your view.

Happy coding..!!

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。 @n***d 是的,我知道很多时候某个链接过期了,但我不认为 Github 链接会死..!! 如果项目被删除,如果实施发生变化,如果 github 关闭......这里接受的最佳实践是在您的答案中至少包含高级别的详细信息,说明您的解决方案的作用 【参考方案2】:

您可以按照以下代码 sn-p 将TextWatcher 绑定到您的 textView 并监听您的 textView 中的文本更改。

...
txtView = (TextView)findViewById(R.id.txt);
txtView.addTextChangedListener(new TextWatcher() 

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) 
        

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) 
        

        @Override
        public void afterTextChanged(Editable s) 
            if(txtView.getLineCount() > 1)
                txtView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
            
        
);
...

【讨论】:

【参考方案3】:

使用spannable作为

String s= "Hello Everyone next line";
 SpannableString ss1=  new SpannableString(s);
 ss1.setSpan(new RelativeSizeSpan(2f), 0,13, 0); // set size of Hello Everyone
 ss1.setSpan(new RelativeSizeSpan(f), 14,23, 0);// set size of Next line
 TextView tv= (TextView) findViewById(R.id.textview);
 tv.setText(ss1); 

【讨论】:

以上是关于进入第二行时如何减小文本大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何:如果换行符减小字体大小

从向量中删除元素时如何减小向量的大小?

如何减小apk文件的大小? [复制]

SQL Server 地理:减小 WKT 文本的大小(小数精度)

减小 bootstrap-datepicker 字段的大小并更改文本颜色

如何使用 twitter bootstrap 使文本和画布响应?