Что следует использовать вместо:
StaticLayout layout = new StaticLayout(text, paint, width, Alignment.ALIGN_NORMAL, mSpacingMult, mSpacingAdd, false);
Дает это предупреждение:
warning: [deprecation] StaticLayout(CharSequence,TextPaint,int,Alignment,float,float,boolean) in StaticLayout has been deprecated StaticLayout layout = new StaticLayout(text, paint, width, Alignment.ALIGN_NORMAL, mSpacingMult, mSpacingAdd, false);
Используйте StaticLayout.Builder.
Подробнее читайте здесь: https://developer.android.com/reference/android/text/StaticLayout.Builder
для вашего случая используйте:
StaticLayout.Builder sb = StaticLayout.Builder.obtain(text, 0, text.length(), paint, width)
.setAlignment(Layout.Alignment.ALIGN_NORMAL)
.setLineSpacing(mSpacingAdd, mSpacingMult)
.setIncludePad (false);
StaticLayout layout = sb.build();
К сожалению, для StaticLayout.Builder требуется API 23 или выше. Мой проект совместим с API 21.
Вы можете использовать это, если хотите: - // Check if we're running on Android 6.0 or higher if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { StaticLayout.Builder sb= StaticLayout.Builder.obtain(text, paint, width) .setAlignment(Layout.Alignment.ALIGN_NORMAL) .setLineSpacing(mSpacingAdd, mSpacingMult) .setIncludePad (false); StaticLayout layout = sb.build(); } else { StaticLayout layout = new StaticLayout(text, paint, width, Alignment.ALIGN_NORMAL, mSpacingMult, mSpacingAdd, false); }
Я настоятельно рекомендую загрузить исходники любого Android API, на который вы нацеливаетесь, которые также будут включать javadocs. Например, используемый вами конструктор имеет следующую документацию javadoc: / ** * @deprecated Вместо этого используйте {@link Builder}. * /