如何提前获得一个TextView可以显示多少个字符?

加盾男爵 2019-01-11 02:41:47
假设现在有两个个TextView,需要显示一段较长的的文本,文本被分成两部分分放在两个TextView显示,假设用户可以设置TextView字体的大小


那如何知道TextView可以放多少个字符呢?假设可以放100个,而需要显示的文本有160个字符,那第一个viw防止100个,第二个放置60个,但问题是我如何知道TextView在不同的手机里可以放置多少个字符呢?这里还有个问题就是TextView字体大小可以修改的,那修改后显然TextView的可以容纳的字符数量又不一样了,那如何获得TextView可以放置的字符数呢?
...全文
1304 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhitaoyang 2019-01-17
  • 打赏
  • 举报
回复
可以根据屏幕大小,TextView的宽度 字号等信息计算出一行能显示出多少字。
https://jingyan.baidu.com/article/95c9d20d43d13fec4e7561b9.html
这个人中暑了 2019-01-16
  • 打赏
  • 举报
回复
我觉得这种情况应该要自定义TextView了,通过自定义你可以获得字体的大小,还能获得TextView的长宽,这样你可以保证每一行的字都是完全显示,而且根据根据计算 字体大小和View长宽的关系就可以得到能放多少字了
SemiraChen 2019-01-16
  • 打赏
  • 举报
回复
加盾男爵 2019-01-16
  • 打赏
  • 举报
回复
引用 2 楼 无fucker说 的回复:
首先你得设置TextView的layout_width、layout_height为固定值或者layout_width=“match_parent”、layout_height=“固定值”才能计算可以容纳多少字符 其次,用户设置字体大小 TextView.setTextSize()里面数字单位是sp,需要转化为px,你还得考虑行间距,字符间距 ,padding等属性,然后去计算吧
类似小说阅读器,用手机看小说的时候都是翻页的吧,我们要求就这个效果,实际上我们APP你可以理解为显示一本20几页的小说,要求可以可以调整字体大小
jklwan 2019-01-16
  • 打赏
  • 举报
回复
引用 8 楼 加盾男爵 的回复:
那哪些阅读器是怎么处理的呢?一段文字,放在一个TextView上显示,显然我要知道这个TextView上到底有几个字才能确定第二个TextView从哪里开始显示 还是说哪些阅读器根本不是用的TextView?
先看看这个https://www.jianshu.com/p/135f8e18ac4e 然后分散对齐,可以用第三方库JustifyTextView。
加盾男爵 2019-01-16
  • 打赏
  • 举报
回复
引用 7 楼 jklwan 的回复:
一般是用textview.getPaint().measureText()计算文字能显示多宽,然后转为多少行。 但是实际能显示多少和计算出来的有差距的,需要计算换行和标点符号,对于同一个textview,标点不能作为一行的开始符号。
那哪些阅读器是怎么处理的呢?一段文字,放在一个TextView上显示,显然我要知道这个TextView上到底有几个字才能确定第二个TextView从哪里开始显示 还是说哪些阅读器根本不是用的TextView?
jklwan 2019-01-16
  • 打赏
  • 举报
回复
一般是用textview.getPaint().measureText()计算文字能显示多宽,然后转为多少行。 但是实际能显示多少和计算出来的有差距的,需要计算换行和标点符号,对于同一个textview,标点不能作为一行的开始符号。
王能 2019-01-11
  • 打赏
  • 举报
回复
虽然不知道你的功能是什么,但是我知道ScrollView套textview就可以无限容纳支付并且可以滑动
雕·不懒惰 2019-01-11
  • 打赏
  • 举报
回复
首先你得设置TextView的layout_width、layout_height为固定值或者layout_width=“match_parent”、layout_height=“固定值”才能计算可以容纳多少字符
其次,用户设置字体大小 TextView.setTextSize()里面数字单位是sp,需要转化为px,你还得考虑行间距,字符间距 ,padding等属性,然后去计算吧
assky124 2019-01-11
  • 打赏
  • 举报
回复
可以测量指定字体,在手机中的像素宽度和TextView的控件宽度对比一下 https://blog.csdn.net/lakeinchina/article/details/16845367
一、[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3); t3.setText( Html.fromHtml( "text3: Text with a " + "link " + "created in the Java source code using HTML.")); 二、TextView显示html文件中的图片 转javaeye:http://da-en.javaeye.com/blog/712415 我们知道要让TextView解析和显示Html代码。可以使用 Spanned text = Html.fromHtml(source); tv.setText(text); 来实现,这个用起来简单方便。 但是,怎样让TextView显示Html中节点的图像呢? 我们可以看到fromHtml还有另一个重构: fromHtml(String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 实现一下ImageGetter就可以让图片显示了: ImageGetter imgGetter = new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { Drawable drawable = null; drawable = Drawable.createFromPath(source); // Or fetch it from the URL // Important drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable .getIntrinsicHeight()); return drawable; } }; 至于TagHandler,我们这里不需要使用,可以直接传null。 参考文档: http://tech-droid.blogspot.com/2010/06/textview-with-html-content.html英语好的朋友就直接看英文文档吧。 三、Android---文字中插入表情 转载自:http://blog.163.com/spf9190@126/blog/static/50207531201091545954587/ 这段时间在做一个短信项目,需要实现短信中插入表情的功能,本一位非常困难,经过一段时间的研究,发现还是比较簡単的,现在总结如下。 以短信输入框为例,短信的输入框是一个EditText,它的append方法不仅可以加入字符串,还可以添加HTML标记。以下就是使用HTML标记添加表情的具体操作。 首先需要构建一个ImageGetter,作用是通过HTML标记获得对应在res目录下的图片: ImageGetter imageGetter = new ImageGetter() { @Override public Drawable getDrawable(String source) { int id = Integer.parseInt(source); //根据id从资源文件中获取图片对象 Drawable d = getResources().getDrawable(id); d.setBounds(0, 0, d.getIntrinsicWidth(),d.getIntrinsicHeight()); return d; } }; 然后就可以直接往EditText视图中添加 inputLable.append(Html.fromHtml("", imageGetter, null)); 其中 Html.fromHtml(""就是HTML的图片标记,在Android中支持了部分HTML标记的使用(这方面我还在继续研究),HTML标记必须被Html.fromHtml修饰。imageGetter即为之前创建的ImageGetter类型的对象。

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧