Вы можете использовать TextUtils.EllipsizeCallback
.Когда текст становится эллиптическим, этот обратный вызов выполняется текстовым представлением.Здесь вы можете установить размер текста меньше текущего.
РЕДАКТИРОВАНИЕ: В противном случае вы можете использовать TextUtils.ellipsize
таким образом
while (mText != TextUtils.ellipsize(mText, textPaint, other params)) {
textpaint.setTextSize(textpaint.getTextSize() - 1);
}