限制TextView文字現實的長度以及超長顯示的方式

有時在開發中,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;
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章