premier post ici =) Je cherchais cette réponse et je n'ai pas réussi à la trouver. Ce que je veux faire, c'est avoir du texte, puis ajouter une image, puis reste du texte. Par exemple:
____
| |
Hi there, this is the photo |___|, hope you like it..
J'ai cherché, mais tout ce que je peux trouver, c'est ajouter du texte à une image ou une image à une autre. Je ne pense pas que ce soit ce que je souhaite, car l'application est principalement du texte mais avec des images.
Ma question est donc la suivante: comment ajouter une image au texte?
merci
UPDATE: J'ai utilisé les conseils de R.daneel.olivaw et ça a fonctionné Nice =)
Mais j'ai un problème. disons que j'ai: "a b c" où je règle la position de b comme spanable. Mais si j'essaie de supprimer le texte et que je supprime b, la prochaine fois que j'écrirai quelque chose, ce sera l'image que j'ai utilisée dans spanable. Comment puis-je corriger cela? Quelqu'un at-il un conseil? merci =)
Je pense que vous recherchez l'interface Spannable. En l'utilisant, vous pouvez ajouter des images à une vue de texte.
Ce lien pourrait aider.
votre meilleure option est de créer votre propre vue et de remplacer la méthode onDraw () en utilisant canvas.drawText () pour le texte et canvas.drawBitmap () pour les images.
Voir la documentation Canvas: http://developer.Android.com/reference/Android/graphics/Canvas.html
Voici un exemple qui dessine du texte au centre de l'écran:
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);
}
}
comme je le sais, il n'y a aucun moyen de le faire.
mais lorsque vous utilisez webview et que vous générez du code HTML, vous pouvez en faire une seule.
générer du HTML à partir de votre contenu et le charger dans Webview, définissez les paramètres de Webview sur aucun contrôle de zoom.
Cela peut être fait avec une image getter: Html.ImageGetter
Vous devrez utiliser des balises HTML pour chaque image.
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. < / string>
Ajoutez ceci à votre chaîne et cela fonctionnera