es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar una imagen clickeable en medio de una cadena utilizando un solo TextView, puedes utilizar SpannableStringBuilder, que extiende SpannableString.

    Aquí tienes un ejemplo de código:

    String text = "Este es un texto de ejemplo con una imagen";
    SpannableStringBuilder builder = new SpannableStringBuilder(text);
    
    // Agregar imagen clickeable
    Drawable drawable = getResources().getDrawable(R.drawable.tu_imagen);
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    
    ClickableSpan clickableSpan = new ClickableSpan() {
         @Override
         public void onClick(View widget) {
            // Manejar evento de clic
         }
    };
    
    ImageSpan imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
    builder.setSpan(clickableSpan, text.indexOf("imagen"), text.indexOf("imagen") + "imagen".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    builder.setSpan(imageSpan, text.indexOf("imagen"), text.indexOf("imagen") + "imagen".length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    
    // Establecer el texto con la imagen y el span clickeable
    textView.setText(builder);
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    

    En el código anterior, se utiliza SpannableStringBuilder para crear un texto con una imagen. Se crea un objeto Drawable para la imagen y se ajustan sus límites. Se utiliza ClickableSpan para los eventos de clic y ImageSpan para agregar la imagen en el texto. Finalmente, se establece el texto en el TextView y se establece LinkMovementMethod para manejar los eventos de clic.

Comments are closed.