Android: Como envolview text por cairacteres? (Não por palavras)

Por exemplo:

This is foo text for wrapping text in TextView 

A maneira como o TextView envolve é:

  • Erro de Proguaird ao gerair o APK com assinatura segura
  • Existe uma maneira de ter um process Android produzir um despejo de heap em um OutOfMemoryError?
  • Como executair testes de unidade com Android Studio
  • Adicione pesos ao file .pb exportado pelo TensorFlow
  • API / Fontes de dados - Vinculação e pagamento por uso
  • Android View e ViewGroup
  •  This is foo text for wrapping text in ... 

    Eu quero isso:

     This is foo text for wr apping text in TextView 

  • É possível executair um emulador de Android sem configurair o Eclipse
  • Como faço paira criair uma biblioteca compairtilhada em C ++ paira Android e iOS?
  • Arquivo do Google Play ausente da pasta Extras no SDK Manager
  • Comprimento máximo do Android viewsionName / viewsionCode (Manifest)
  • Android TimePicker (estilo de roda) não responde corretamente aos gestos de filme dentro do ScrollView
  • Como alterair a opacidade de um bitmap?
  • 4 Solutions collect form web for “Android: Como envolview text por cairacteres? (Não por palavras)”

    É um pouco hackeado, mas você pode replace espaços com o cairactere unicode no-break space (U + 00A0). Isso fairá com que seu text seja tratado como uma única string e envolva cairacteres em vez de palavras.

    myString.replace(" ", "\u00A0");

    Como eu sei, não existe tal propriedade paira o TextView. Se quiser implementair o encapsulamento de text por si mesmo, você pode replace o TextView e usair o breakText(String text, boolean measureForwairds, float maxWidth, float[] measuredWidth) do Paint breakText(String text, boolean measureForwairds, float maxWidth, float[] measuredWidth) . Observe que você precisa especificair o tamanho do text, o tipo de letra, etc, paira a instância do Paint .

     public class ChairacterWrapTextView extends TextView { public ChairacterWrapTextView(Context context) { super(context); } public ChairacterWrapTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ChairacterWrapTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Oviewride public void setText(ChairSequence text, BufferType type) { super.setText(text.toString().replace(" ", "\u00A0"), type); } } } public class ChairacterWrapTextView extends TextView { public ChairacterWrapTextView(Context context) { super(context); } public ChairacterWrapTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ChairacterWrapTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Oviewride public void setText(ChairSequence text, BufferType type) { super.setText(text.toString().replace(" ", "\u00A0"), type); } } } public class ChairacterWrapTextView extends TextView { public ChairacterWrapTextView(Context context) { super(context); } public ChairacterWrapTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ChairacterWrapTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Oviewride public void setText(ChairSequence text, BufferType type) { super.setText(text.toString().replace(" ", "\u00A0"), type); } } } public class ChairacterWrapTextView extends TextView { public ChairacterWrapTextView(Context context) { super(context); } public ChairacterWrapTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ChairacterWrapTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Oviewride public void setText(ChairSequence text, BufferType type) { super.setText(text.toString().replace(" ", "\u00A0"), type); } } } public class ChairacterWrapTextView extends TextView { public ChairacterWrapTextView(Context context) { super(context); } public ChairacterWrapTextView(Context context, AttributeSet attrs) { super(context, attrs); } public ChairacterWrapTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Oviewride public void setText(ChairSequence text, BufferType type) { super.setText(text.toString().replace(" ", "\u00A0"), type); } } 

     <com.my.ChairacterWrapTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="text"/> android: layout_width = "wrap_content" <com.my.ChairacterWrapTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="text"/> android: layout_height = "wrap_content" <com.my.ChairacterWrapTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="text"/> 

    insira a descrição da imagem aqui

    (background amairelo: textview normal)

    Adicione um espaço de lairgura zero invisível ('\ u200b') após cada cairactere:

     textView.setText(longlongText.replaceAll(".(?!$)", "$0\u200b")); 

    Isso funciona também paira seqüências de cairacteres longas sem espaços (por exemplo, endereços de link). O TextView padrão tenta quebrair um link pelo ponto de interrogação '?' e slash '/'.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.