Android判断TextView是否超出加省略号
2024-09-29 22:46:47
我们都知道通过指定android:ellipsize="end" android:singleLine="true" 可以让TextView自动截断超出部分并且添加省略号。但是如何判断一个TextView是否被截断了呢?
这个问题在StackOverflow上有人讨论过,不过遗憾的是我测试出Layout layout = mytextview.getLayout();一直是null。后来我发现了更好的办法:
首先自定义一个TextView的子类,声明两个个方法:
1
2
3
4
5
6
7
8
9
10
11
|
private int getAvailableWidth() { return getWidth() - getPaddingLeft() - getPaddingRight(); } private boolean isOverFlowed() { Paint paint = getPaint(); float width = paint.measureText(getText().toString()); if (width > getAvailableWidth()) return true ; return false ; } |
然后在onTextChanged里调用isOverFlowed就行了。
http://www.hankcs.com/program/mobiledev/android-textview-determine-whether-excess-of-ellipsis.html
最新文章
- [.NET] C# 知识回顾 - 事件入门
- Gson的使用
- 将asp.net webapi的运行时版本由4.0升级到4.5.1时遇到的问题及解决
- Java for LeetCode 215 Kth Largest Element in an Array
- C++ 文件读取
- LoadRunner使用技巧之添加事务
- [教程] 以本论坛为例,手把手教你使用按键精灵POST登陆网页
- [转]分布式文件系统FastDFS架构剖析
- cocos2dx-lua 批量打包及修改
- RMAN备份FORMAT格式中%的含义
- Python-求助 SAE 如何使用第三方库? - 德问:编程社交问答
- Redis基础学习(一)—Redis的安装
- Dotnet Core Windows Service
- deeplearn.js
- Linux bc 命令简单学习
- websocket 心跳重连
- spring-boot-2.0.3源码篇 - 国际化
- 如果使用xutils出现了ExceptionInInitializerError这个错误
- poj3190 Stall Reservations (贪心+优先队列)
- spring和jdbc结合的一个小例子