ここに最初の投稿=)私はこの答えを探していましたが、見つけることができませんでした。私がやりたいのは、テキストをいくつか用意してから、画像を追加してから、残りのテキストを追加することです。例えば:
____
| |
Hi there, this is the photo |___|, hope you like it..
私は探していましたが、画像にテキストを追加するか、画像ビューに画像を追加するだけです。アプリは主にテキストですが、画像が含まれているため、それは私が望んでいることではないと思います。
だから私の質問は:テキストに画像を追加するにはどうすればよいですか?
ありがとう
更新:R.daneel.olivawからのアドバイスを使用しましたが、うまくいきました=)
しかし、私には問題があります。 「abc」としましょう。ここで、bの位置をスパン可能に設定します。しかし、テキストを削除しようとしてbを削除すると、次に何かを書いたときに、スパンアブルで使用した画像になります。これを修正するにはどうすればよいですか?誰かアドバイスがありますか?ありがとう=)
Spannableインターフェースを探していると思います。これを使用すると、テキストビューに画像を追加できます。
この リンク が役立つかもしれません。
最善のオプションは、独自のビューを作成し、テキストにcanvas.drawText()を使用し、画像にcanvas.drawBitmap()を使用してonDraw()メソッドをオーバーライドすることです。
Canvasのドキュメントを参照してください: http://developer.Android.com/reference/Android/graphics/Canvas.html
画面の中央にテキストを描画する例を次に示します。
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);
}
}
私が知っているように、それを行う方法はありません。
しかし、webviewと生成されたhtmlを使用すると、同様のことができます。
コンテンツからhtmlを生成し、それをwebviewにロードし、webview設定をズームコントロールなしに設定します。
これは画像ゲッターで行うことができます: Html.ImageGetter
画像ごとにHTMLタグを使用する必要があります。
< string name="text" > "Hi there, this is the photo [img src=img.jpge/] , hope you like it. < / string>
これを文字列に追加すると、機能します