如果TextView
的父元素中没有足够的空间,我会显示一个图标。该文本或图标上的选项卡将用于调用带有完整字符串的警报对话框。所以我需要知道TextView
是否已被定罪。
答案 0 :(得分:5)
拼写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;
}
由于 迪帕克
答案 1 :(得分:0)
尝试使用Paint.getFontMetrics来决定文本需要多少空间,然后计算它是否适合TextView。