Слово wraped tex на холсте Android

Я пытаюсь написать некоторые строки на холст (живые обои), однако длинная строка не получает словосочетания, есть ли способ сделать это?
Я думаю, что canvas – единственное, что я могу использовать для этого, так как это живые обои.

    Не нужно делать свою собственную упаковку слов.

    Проверьте android.text.Layout и его подклассы android.text.StaticLayout и android.text.DynamicLayout

    что-то вроде этого:

    StaticLayout layout = new StaticLayout(text, txtpaint, textW,Layout.Alignment.ALIGN_NORMAL, 1.3f, 0, false); txtcanvas.translate(xoffs, yoffs); //position the text layout.draw(txtcanvas); 

    Не уверен, что это сработает для вас, но для этих ситуаций мне очень нравится просто создавать представление, компонововать его, а затем записывать «скриншот» из него в растровое изображение.

    Эта функция создаст растровое изображение из params + xml layout в «just_a_textview».

     private static Bitmap renderTextIntoBitmap(Context context, Bitmap.Config bitmapConfig, String text, int textColor, int maxTextWidth) { LayoutInflater inflater = LayoutInflater.from(context); TextView tv = (TextView) inflater.inflate(R.layout.just_a_textview, null); tv.setText(text); tv.setMaxWidth(maxTextWidth); int widthSpec = View.MeasureSpec.makeMeasureSpec(maxTextWidth, View.MeasureSpec.EXACTLY); int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); tv.measure(widthSpec, heightSpec); tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight()); tv.setTextColor(textColor); Bitmap bitmap = Bitmap.createBitmap(tv.getWidth(), tv.getHeight(), bitmapConfig); Canvas canvas = new Canvas(bitmap); tv.draw(canvas); return bitmap; } 

    Вы не хотите делать это в каждом кадре, но как только у вас есть растровое изображение, рисование его на холсте происходит очень быстро. И это дает вам всю гибкость ANY Android View.

    Я понимаю, что это не сработает, если ваш текст очень динамичен, но вы можете сделать это так и использовать матрицу холста для любого масштабирования / вращения, которое вы, возможно, захотите сделать. Это может быть дополнительно оптимизировано для производительности, например, путем вытягивания инфляции компоновки.

    Intereting Posts
    Просматривать представление от одного вида деятельности к другому Загрузка изображений с помощью FTP на Android Как скомпилировать ffmpeg-2.2.2 на окнах с cygwin и android ndk r9c Не удалось преобразовать файл '45907c80e09917e1b776adf038505958' для сопоставления атрибутов {artifactType = jar} с использованием преобразования AarTransform Обновить интерфейс пользователя из AsyncTaskLoader Упорядоченные списки внутри Android TextView Установите состояние кнопки и сохраните ее после нажатия клавиши Конструкция обратной совместимости для дизайна материалов: colorAccent требует API уровня 21 при использовании appcompat7 Как НЕ закрывать клавиатуру при нажатии DONE на клавиатуре DialogPreference не следует закрывать, если не выбран вариант Android – Что происходит, когда устройство разблокировано? Почему onCreate () вызывается после onConfigurationChanged? Сбой списка Listview в портретном режиме при нажатии на элементы (с использованием фрагментов) Прогресс загрузки OkHttp не синхронизируется с фактической загрузкой Обновление событий Android Calendar SQLiteException