2012-01-21 30 views
18

primera publicación aquí =) He estado buscando esta respuesta y no he podido encontrarla. Lo que quiero hacer es tener algo de texto, luego agregar una imagen, luego el resto del texto. Por ejemplo:Android ¿Agregar imagen a texto (en vista de texto)?

       ____ 
          | | 
Hi there, this is the photo |___|, hope you like it.. 

que he estado buscando, pero todo lo que puedo encontrar es añadir texto a la imagen o añadir una imagen a otra vista, y no creo que eso es lo que quiero porque la aplicación es sobre todo el texto, pero con imágenes en él.

Entonces mi pregunta es: ¿cómo agrego una imagen al texto?

gracias


ACTUALIZACIÓN: que utiliza el consejo R.daneel.olivaw me dio y ha funcionado agradable =)

Pero tengo un problema. digamos que tengo: "a b c" donde establezco la posición de b como espaciable. Pero si trato de eliminar el texto y borro b, la próxima vez que escriba algo se convertirá en la imagen que utilicé en el archivo spanable. ¿Cómo puedo corregir esto? Any1one tiene algún consejo? gracias =)

Respuesta

25

Creo que busca la interfaz Spannable, Al utilizar este se puede agregar imágenes a una vista de texto.

Esto link podría ayudar.

enter image description here

+0

esta costuras a work.awsome, voy a seguir intentando y ver si hace lo que yo quiero =) – user1162299

+0

Hola, ¿Resultó ser útil para ti? –

+0

sí, totalmente trabajado. Gracias. Pero tengo un problema. digamos que tengo: "a b c" donde establezco la posición de b como espanable. pero si trato de borrar el texto y borro b la próxima vez que escriba algo, se convertirá en la imagen que utilicé en el archivo spanable. ¿Cómo puedo corregir esto? – user1162299

0

como sé, no hay forma de hacerlo.

pero cuando utiliza webview y html generado puede hacer simillar uno.

genere html desde su contenido y cárguelo en la vista web; establezca la configuración de la vista web sin control de acercamiento.

2

su mejor opción es crear su propia vista y anular el método onDraw() usando canvas.drawText() para texto y canvas.drawBitmap() para imágenes.

Véase el documento de la lona: http://developer.android.com/reference/android/graphics/Canvas.html

Aquí es un ejemplo que saquen un poco de texto en el centro de la pantalla:

public class OverlayView extends View { 

public OverlayView(final Context context) { 
    super(context); 
} 

/** 
* Draw camera target. 
*/ 
@Override 
protected void onDraw(final Canvas canvas) { 

    // view size 
    int width = getWidth(); 
    int height = getHeight(); 

    float square_side = height - width * 0.8f; // size of the target square 

    Paint paint = new Paint(); 
    paint.setAntiAlias(true); 
    paint.setStyle(Paint.Style.FILL); 

    // text size is 5% of the screen height 
    paint.setTextSize(height * 0.05f); 

    // draw message depending of its width 
    String message = getResources().getString(R.string.photo_target_text); 

    float message_width = paint.measureText(message); 

    paint.setColor(getResources().getColor(R.color.color_foreground)); 
    canvas.drawText(message, (width - message_width)/2, 
      (height - square_side)/4, paint); 

    super.onDraw(canvas); 
} 

} 
0

Esto se puede hacer con la imagen captador: Html.ImageGetter

Tendrá que usar etiquetas HTML para cada imagen.

0
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. </string> 

agregue esto a la cadena y funcionará

Cuestiones relacionadas