有时在开发中,TextView如果设置了android:ellipsize="end",显示的文字超长是最后超出的部分为以“...”(3个点结束)
碰到一些变态的产品经理他就会闲3个点不好看,非得改为2个点显示,如何做?
下面直接上源码:
private String handleStartListTextView(String content) { int contactNameTextsize = mContext.getResources().getDimensionPixelSize(R.dimen.contact_name_textsize); int mLimitContactsLength = mContext.getResources().getDimensionPixelSize(R.dimen.limit_contacts_length); Paint paint = new Paint(); paint.setTextSize(contactNameTextsize); float pointWidth = paint.measureText(".."); if (content == null) return ""; char[] textCharArray = content.toCharArray(); //已绘的宽度 float drawedWidth = 0; float charWidth; for (int i = 0; i < textCharArray.length; i++) { charWidth = paint.measureText(textCharArray, i, 1); if (mLimitContactsLength - drawedWidth - pointWidth < charWidth) { return content.subSequence(0, i)+".."; } else { drawedWidth += charWidth; } } return content; }
限制TextView文字现实的长度以及超长显示的方式,布布扣,bubuko.com
原文:http://blog.csdn.net/chenshijun0101/article/details/22292499