Android 如何在TextView中显示文本的最后一部分

Android 如何在TextView中显示文本的最后一部分,android,android-layout,textview,Android,Android Layout,Textview,我有一个文本视图,我想在其中显示字符串的最后一部分。通常,如果我在TextView中设置一个大文本,文本的第一部分将显示在TextView中。但我的要求是显示最后一部分(最后一个句号将显示在TextView的左侧)。我不知道文本大小,但它会很大。我必须使用单线,我不想使用省略号(3点)。看看这个 TextView tvTextView; String text = "YOUR LONG TEXT WILL BE HERE", subString = "", int textViewWidth =

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

看看这个

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);
TextView-tvTextView;
String text=“您的长文本将在此处”,subString=“”,
int textViewWidth=100;
国际货币基金组织;
tvTextView.setText(文本);
DisplayMetrics DisplayMetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
textViewWidth=displayMetrics.widthPixels;//如果需要,您需要减去填充和边距
Log.d(“textview_width”,“width”+textViewWidth+“length”+text.length());
Paint Paint=tvTextView.getPaint();
对于(numChars=1;numChars=textViewWidth){
打破
}
}
subString=text.subString(text.length()+1-numChars,text.length());
整数点=子字符串。拆分(“\\”)。长度*2;
如果(text.length()检查这个

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);
TextView-tvTextView;
String text=“您的长文本将在此处”,subString=“”,
int textViewWidth=100;
国际货币基金组织;
tvTextView.setText(文本);
DisplayMetrics DisplayMetrics=新的DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
textViewWidth=displayMetrics.widthPixels;//如果需要,您需要减去填充和边距
Log.d(“textview_width”,“width”+textViewWidth+“length”+text.length());
Paint Paint=tvTextView.getPaint();
对于(numChars=1;numChars=textViewWidth){
打破
}
}
subString=text.subString(text.length()+1-numChars,text.length());
整数点=子字符串。拆分(“\\”)。长度*2;
if(text.length()