Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Hay alguna manera de insertar un ImageSpan en un TextView sin interrumpir el texto?

Parece que con el fin de agregar un ImageSpan a un Spannable en Android, tengo que realmente reemplazar algún texto con la imagen. Por ejemplo:

Spannable span = new SpannableString("Foo imageplace Bar!"); Drawable android = context.getResources().getDrawable(R.drawable.android); android.setBounds(0, 0, 32,32); ImageSpan image = new ImageSpan(android, ImageSpan.ALIGN_BASELINE); span.setSpan(image, 4, 14, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 

Esto reemplazará "imageplace" con la imagen. Debido a que estoy tratando con el texto complejo multi-span y la reiteración, es un poco de dolor de cabeza para insertar texto sin sentido en cada lugar que quiero el icono de Android. Pero parece que si el inicio y el final del intervalo son iguales, la imagen no se incluirá. ¿Hay alguna forma de evitar esto?

  • Ajuste de la alineación del texto mediante SpannableString
  • Android EditText: ¿Cómo crear un párrafo de viñeta vacío de BulletSpan?
  • La mejor manera de obtener una SpannableString de un SpannableStringBuilder
  • Cómo alinear TextView alrededor de un ImageView?
  • El método draw () de ReplacementSpan no se llama
  • ¿Por qué mostrar java.lang.ClassCastException: android.text.SpannableString no se puede transmitir a java.lang.String?
  • Establecer arrastrar audiencia en SpannableString
  • Spannablestring no funciona para el botón creado mediante programación
  • 2 Solutions collect form web for “¿Hay alguna manera de insertar un ImageSpan en un TextView sin interrumpir el texto?”

    Tal vez usted puede agregar un espacio adicional para ser reemplazado por el ImageSpan. Por ejemplo,

     Spannable span = new SpannableString("Foo imageplace Bar!"); Drawable android = context.getResources().getDrawable(R.drawable.android); android.setBounds(0, 0, 32,32); ImageSpan image = new ImageSpan(android, ImageSpan.ALIGN_BASELINE); span.setSpan(image, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); 

    Y encontrará que la imagen reemplaza el espacio adicional sin interrumpir el texto.

    Usted tiene que saber la longitud del texto, el uno después de que usted quiere agregar la imagen. Por ejemplo..

     Drawable image = ContextCompat.getDrawable(mContext, android.R.drawable.presence_offline); image.setBounds(0, 0, image.getIntrinsicWidth(), image.getIntrinsicHeight()); // Replace blank spaces with image icon String myText = "myText"; int textLength = myText.length(); SpannableString sb = new SpannableString(myText + " " + "This is another text"); ImageSpan imageSpan = new ImageSpan(image, ImageSpan.ALIGN_BOTTOM); sb.setSpan(imageSpan, textLength, textLength + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.