如何在TextView

时间:2017-09-18 03:21:32

标签: android android-layout textview

我有一个TextView我要在其中显示String的最后一部分。通常,如果我在TextView中设置大文字,则TextView中会显示第一部分文字。但我的要求是显示最后一部分(最后一个句号将显示在TextView左侧)。我不知道文字大小,但它会很大。我必须使用单行,我不想使用省略号(3点)。

1 个答案:

答案 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);