2011-10-27 16 views
7

たぶんそれは愚かな質問ですが、TextViewの2行目の最後に小さな画像を挿入する方法はありません。イメージは常にテキストの最後の部分ではなく、行末に表示されます。私はこのような画像を挿入したい複数行TextViewの最後にImageViewを挿入するには?

:私は取得しています何

TextTextTextTextTextTextTextTextTextText 
TextTextTextText. <ImageView> 

は次のとおりです。

TextTextTextTextTextTextTextTextTextText <ImageView> 
TextTextTextText. 

私はそれを行う方法がある願っています。

のSrc:

<RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/tv" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="TESTESTESTESTESTESTESTESTESTESTESTESTES" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="#FFFFFF" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/tv" 
      android:src="@drawable/icon" /> 
    </RelativeLayout> 
+0

投稿コード........ –

+0

あなたのXMLコードをわかりやすく、問題を見てください。 – Carnal

+0

よりもいくつかのコードがあります。 – Sver

答えて

12

ImageSpanを作成してテキストビューに追加します。このように、あなたは、あなたがテキスト

例にしたいあなたのイメージを置くことができる - それを完了するために

ImageSpan imagespan = new ImageSpan(appContext, ressource); 
text.setSpan(imagespan, i, i+ strLength, 0); //text is an object of TextView 
+0

それは新しいです、どうやって使用しますか?いくつかの使用コードを表示できますか? – bluefalcon

+0

ImageSpan imagespan =新しいImageSpan(appContext、ressource);text.setSpan(imagespan、i、i + strLength、0); –

+0

ありがとう!それは私が今日学んだことです。 – bluefalcon

0

それは最善の解決策ではないかもしれませんが、あなたはあなたのラインに画像を挿入するHtml.fromHtmlを使用して試すことができます。

ImageGetter getter = new ImageGetter(){     
    public Drawable getDrawable(String source){ 
     Drawable d = null; 

     context.getResources().getDrawable(Integer.parseInt(source)); 

     if (d != null) 
      d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 

     return d; 
    } 
}; 
String imgString = <source string> + " <img src=\"R.drawable.icon\"/>"; 
((TextView)findViewById(R.id.tv)).setText(
    Html.fromHtml(imgString, getter, null)); 
4

一つの最良の方法は、ケースの誰に次...

ImageGetter getter = new ImageGetter(){     
    public Drawable getDrawable(String source){ // source is the resource name 
     Drawable d = null; 
     Integer id = new Integer(0); 
     id = getApplicationContext().getResources().getIdentifier(source, "drawable", "com.sampleproject"); 

     d = getApplicationContext().getResources().getDrawable(id); 

     if (d != null) 
      d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 

     return d; 
    } 
}; 

String imgString = this.getResources().getString(R.string.text_string) + " <img src=\"img_drawable_image\"/>"; 
((TextView)findViewById(R.id.textview_id)).setText(
Html.fromHtml(imgString, getter, null)); 
0
SpannableString ss = new SpannableString(title); 
Drawable d = getResources().getDrawable(R.drawable.gallery_list); 
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); 
ss.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 
newsTextView.setText(ss); 
0
TextView textView =new TextView(this); 
SpannableStringBuilder ssb = new SpannableStringBuilder("Here's a smiley how are you "); 
Bitmap smiley = BitmapFactory.decodeResource(getResources(), R.drawable.movie_add); 
ssb.setSpan(new ImageSpan(smiley), ssb.length()-1, ssb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
textView.setText(ssb, BufferType.SPANNABLE); 
関連する問題