2012-01-21 25 views
18

ここに最初の投稿=) 私はこの答えを探していて、それを見つけることができませんでした。 私がやりたいことは、テキストをいくつか持っていて、次に画像を追加してテキストを残すことです。たとえば:Androidイメージをテキストに追加(テキスト表示)?

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

私が見てきたが、私は見つけることができるすべては、画像にテキストを追加したり、画像表示に画像を追加し、アプリは主にテキストが、とあるので、私はそれは私が欲しいものだとは思いませんその上の画像。

私の質問は次のとおりです。イメージをテキストに追加するにはどうすればよいですか?

おかげ


UPDATE: 私は

)= R.daneel.olivawがくれたし、それは素晴らしい仕事をアドバイスを使用しかし、私は問題を抱えています。私は持っていると言うことができます: "a b c"ここで私はbの位置をスパン可能に設定します。しかし、テキストを削除しようとしたときにbを削除すると、次回に何かを書き込むと、スパンで使用したイメージになります。これを修正するにはどうすればよいですか? Anyoneに助言がありますか? ありがとう=)

答えて

25

私はあなたがこのあなたを使用することにより、Spannableインタフェースを探していると思いますテキストビューにイメージを追加できます。

linkが役に立ちます。

enter image description here

+0

に動作します、私はそれをしようとしておこうと、それは私が=欲しいものないかどうかを確認) – user1162299

+0

あなたに役立つ? –

+0

はい、完全に働きました。ありがとうございます。しかし、私は問題があります。 私は持っていると言うことができます: "a b c"ここで私はbの位置をspanableとして設定します。しかし、テキストを削除しようとすると、次回に何かを書くときにbを削除すると、スパンで使用したイメージになります。これを修正するにはどうすればよいですか? – user1162299

0

私が知っているように、それを行う方法はありません。

しかし、webviewを使用してHTMLを生成すると、simillar oneを実行できます。

コンテンツからhtmlを生成してwebviewに読み込み、webview設定をズームコントロールなしに設定します。

2

独自のビューを作成し、テキストの場合はcanvas.drawText()、画像の場合はcanvas.drawBitmap()を使用してonDraw()メソッドをオーバーライドすることをお勧めします。

キャンバスドキュメントを参照してください:ここで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); 
} 

} 
0

これは、画像ゲッターで行うことができます:Html.ImageGetter

あなたは画像ごとにHTMLタグを使用する必要があります。

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

ことが判明しましたこんにちは、あなたの文字列にして、これを追加し、これがwork.awsomeする縫い目

関連する問題