Quiero insertar algunas imágenes en TextView. ¿Cómo hacerlo? Cualquier idea¿Cómo mostrar la imagen en TextView de Android?
Respuesta
Puede crear un SpannableString y colocar su imagen donde desee en TextView. O puede utilizar
ImageSpan is = new ImageSpan(context, resId);
text.setSpan(is, index, index + strLength, 0);
¿no terminará esto en una excepción de índice fuera de límites porque el tercer parámetro, que es int end, está más allá de la longitud de la cadena? –
@LeiLeyba correcto. la respuesta real sería: final Spannable text = new SpannableString (string + ""); text.setSpan (es, string.length(), 1 + string.length(), 0); . esto agregará una imagen al final de la cadena dada. –
Si desea colocar una imagen envuelta con texto, tenga en cuenta que no se muestra si abarca un carácter de "espacio" y la vista de texto inserta un salto de línea en esa posición. Supongo que la vista de texto corta todos los espacios en este caso, lo que hace que la imagen no se muestre en esa posición. Utilice un carácter ficticio como "x" que no está recortado por la vista de texto en su lugar. – Kedu
haga algo como esto.
textView.setCompoundDrawableWithIntrinsicBounds(yourImg, null, null, null);
ImageSpan is = new ImageSpan(context, R.drawable.arrow);
SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");
text.setSpan(is, 5, 5 + 10, 0);
Esta es la solución más limpia (y la única que funciona para mí) . – Bevor
maquillaje custom.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/thumbnail_view"
android:src="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView android:id="@+id/message_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/thumbnail_view"
android:textSize="18sp"
android:text="MyText" />
</RelativeLayout>
después en main.xml, incluya esta custom.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal">
<include
android:id="@+id/customView"
layout="@layout/custom"/>
</LinearLayout>
Ésta es mi mainActivity.class
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private String TAG = MainActivity.class.getSimpleName();
ImageView img;
ImageView img1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView txt = (TextView)findViewById(R.id.message_view);
img = (ImageView) findViewById(R.id.thumbnail_view);
img1 = (ImageView) findViewById(R.id.thumbnail_view1);
img.setOnClickListener(this);
img1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v== img){
// do something for img
}
else if (v== img1){
//do something for img1
}
}
}
Mucho más fácil se puede utilizar SpannableStringBuilder de API 1
Ejemplo de uso:
Para API> = 21
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append("My string. I ")
.append(" ", new ImageSpan(getActivity(), R.drawable.ic_action_heart), 0)
.append(" Cree by Dexode");
textView.setText(builder);
Para API> = 1
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append("My string. I ").append(" ");
builder.setSpan(new ImageSpan(getActivity(), R.drawable.ic_action_heart),
builder.length() - 1, builder.length(), 0);
builder.append(" Cree by Dexode");
textView.setText(builder);
Prueba este ...
<string name="home"><img src=""></img></string>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/home" />
no funciona en absoluto – prateek31
¿cómo se supone que funciona? –
- 1. Mostrar caracteres Unicode en TextView Android
- 2. ¿Cómo puedo mostrar la imagen en la aplicación Android
- 3. mostrar smiley en textview y edittext en android
- 4. Actualizando Android TextView regularmente para mostrar la cuenta regresiva
- 5. Cómo dibujar TextView en Canvas en android ..?
- 6. ¿Cómo hacer textView redondeado en Android?
- 7. Cómo mostrar la imagen de fondo en la vista de texto
- 8. Android TextView Wrap
- 9. cómo cambiar texto en Android TextView
- 10. Linkify en android TextView
- 11. ¿Cómo mostrar una imagen de Internet en Android?
- 12. actualiza dinámicamente TextView en Android
- 13. multicolor Android en una TextView
- 14. Cómo rotar TextView 90 grados y mostrar
- 15. Android TextView
- 16. ¿Cómo colorear parte de TextView en Android?
- 17. Cambiar la Opacidad de TextView en Android
- 18. Clickable TextView en Android
- 19. Autolink dentro de un TextView en Android
- 20. ¿Cómo mostrar la imagen en grails GSP?
- 21. cómo mostrar la imagen dicom en matlab?
- 22. ¿Cómo mostrar la imagen en RSS?
- 23. ¿Cómo mostrar la imagen en pygame?
- 24. cómo ajustar texto en textview en android
- 25. Cómo influir en salto de línea en Android Textview
- 26. dibujar la línea en TextView en Android
- 27. ¿Cómo mostrar la carga de animación en la vista de la imagen de Android?
- 28. Mostrar emoticones en Android
- 29. Justificar texto en TextView Android
- 30. ¿Cómo mostrar una imagen?
utilizando dos primeras respuestas, que no son capaces de añadir imágenes entre el texto, solamente en la parte superior, inferior, izquierda o derecha, pero mi solución le permite añadir la imagen a lo índice que desea en el texto –
Ver este artículo sobre cómo [configurar conjuntos arrastrables compuestos a un TextView] (http://mgmblog.com/2010/06/04/setcompounddrawable-to-add-drawables-to-textview/) – Salil
Respuesta actualizada por 'Dawid', bastante compacto. – Darpan