android - 如何检查 TextView 字符串是否已被修剪(选取框)?

标签 android textview

如果 TextView 在其父元素中没有足够的空间,我将显示一个图标。该文本或图标上的选项卡将用于调用带有完整字符串的警告对话框。所以我需要知道 TextView 是否已被修剪。

最佳答案

计算 TextView 的宽度,并计算将在 textview 中显示的文本的宽度。如果文本的宽度大于 textView 的宽度,这意味着您必须调用对话框,因为文本将被标记。否则,文本完全适合 TextView,没有任何问题,因此不需要对话框。

使用下面的代码。

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    // TODO Auto-generated method stub
    super.onWindowFocusChanged(hasFocus);
//  System.out.println("...111Height..."+mainLayout.getMeasuredHeight());

    isMarqueed("I am fine here. How r u", textView.getWidth(), textView);
    isMarqueed("I am fine", textView.getWidth(), textView);
}


private boolean isMarqueed(String text, int textWidth, TextView tv) { 
    Paint testPaint = new Paint();
    testPaint.set(tv.getPaint());
    boolean isMarquee = true;
    if (textWidth > 0) {
        int availableWidth = (int) (textWidth - tv.getPaddingLeft() - tv.getPaddingRight()-testPaint.measureText(text));
        System.out.println("...available width..."+availableWidth);
//        tv.setText(text);
        isMarquee = false;
    }
    return isMarquee;
}

谢谢 迪帕克

关于android - 如何检查 TextView 字符串是否已被修剪(选取框)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6187203/

相关文章:

android - 获取Android开发TextView最后一行的文字

android - 在android中加载本地谷歌地图有什么限制吗?

android - Google Play 控制台中针对被拒绝应用的更新 APK 选项在哪里?

android - measure() 不适用于动态布局和 textView - Android

android - 在 TextView 中支持 <span> 标签的方法

java - 使用 MainActivity 中的方法填充 TextView

java - 每次启动一个新变量还是从 java 中的另一个类调用一个变量更好?

Android:如何让用户选择联系人?

android - 首次在抽屉导航上打开时应用程序 Activity 延迟

android - TextView onclick 事件不起作用