我有一个TextView
我要在其中显示String
的最后一部分。通常,如果我在TextView
中设置大文字,则TextView
中会显示第一部分文字。但我的要求是显示最后一部分(最后一个句号将显示在TextView
左侧)。我不知道文字大小,但它会很大。我必须使用单行,我不想使用省略号(3点)。
答案 0 :(得分:2)
看看这个,
TextView tvTextView;
String text = "YOUR LONG TEXT WILL BE HERE", subString = "",
int textViewWidth = 100;
int numChars;
tvTextView.setText(text);
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
textViewWidth = displayMetrics.widthPixels; // you need to subtract paddings and margins if needed
Log.d("textview_width", "width " + textViewWidth + " length " + text.length());
Paint paint = tvTextView.getPaint();
for (numChars = 1; numChars <= text.length(); ++numChars) {
if (paint.measureText(text, 0, numChars) >= textViewWidth) {
break;
}
}
subString = text.substring(text.length() + 1 - numChars, text.length());
int dots = subString.split("\\.").length * 2;
if(text.length() <= numChars - 1){
subString = text;
}
else {
subString = text.substring(text.length() + 1 + dots - numChars, text.length());
}
tvTextView.setText(subString);