我们都知道通过指定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

最新文章

  1. [.NET] C# 知识回顾 - 事件入门
  2. Gson的使用
  3. 将asp.net webapi的运行时版本由4.0升级到4.5.1时遇到的问题及解决
  4. Java for LeetCode 215 Kth Largest Element in an Array
  5. C++ 文件读取
  6. LoadRunner使用技巧之添加事务
  7. [教程] 以本论坛为例,手把手教你使用按键精灵POST登陆网页
  8. [转]分布式文件系统FastDFS架构剖析
  9. cocos2dx-lua 批量打包及修改
  10. RMAN备份FORMAT格式中%的含义
  11. Python-求助 SAE 如何使用第三方库? - 德问:编程社交问答
  12. Redis基础学习(一)—Redis的安装
  13. Dotnet Core Windows Service
  14. deeplearn.js
  15. Linux bc 命令简单学习
  16. websocket 心跳重连
  17. spring-boot-2.0.3源码篇 - 国际化
  18. 如果使用xutils出现了ExceptionInInitializerError这个错误
  19. poj3190 Stall Reservations (贪心+优先队列)
  20. spring和jdbc结合的一个小例子

热门文章

  1. [bzoj1095][ZJOI2007]Hide 捉迷藏 点分树,动态点分治
  2. python自动化测试报告(excel篇)
  3. C语言中的bool类型
  4. mysql数据库编码格式
  5. 关于Red5整合springMVC提示scope not found 的错误
  6. 获取某个元素相对于视窗的位置-getBoundingClientRect
  7. 神秘的FrontCache
  8. Unsafe in Java
  9. (12)ubunto 快捷键
  10. 洛谷—— P1873 砍树