2012-02-18 35 views

回答

14

只要你喜歡,你可以添加儘可能多的ImageSpan s到Spannable。只需按照您所鏈接的代碼所闡述的概念進行操作即可。您可能也想使用SpannableStringBuilder

Drawable happySmiley = mContext.getResources().getDrawable(R.drawable.happy); 
happySmiley .setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 
Drawable sadSmiley = mContext.getResources().getDrawable(R.drawable.sad); 
sadSmiley .setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); 

SpannableStringBuilder builder = new SpannableStringBuilder(); 
builder.append("Some text [happy_smiley_anchor]"); 
builder.setSpan(new ImageSpan(happySmiley), builder.length()-"[happy_smiley_anchor]".length(), builder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
builder.append(". Some more text [sad_smiley_anchor]"); 
builder.setSpan(new ImageSpan(sadSmiley), builder.length()-"[sad_smiley_anchor]".length(), builder.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

edittext.setText(builder); 

很明顯,你可以使用任何你喜歡的錨文本/字符 - 當插入ImageSpan它被替換。它甚至可以使用空字符/字符串,但我沒有嘗試。

+0

非常感謝你..它幫助我... – 2012-02-20 04:33:20

+0

在這個例子中,它用imagespan對象代替了從開始到結束的文本......你知道如何將光標放在光標所在的位置嗎? – 2013-06-26 12:13:22

+1

@ ShailAdi:你是否試圖簡單地設置'ImageSpan'開始和結束的相等位置(在文本插入符的位置)?或者,您可能需要先插入佔位符。如果一切都失敗了,就在這裏開始一個新的問題。 :) – 2013-06-26 19:10:03

1

只要你喜歡,你可以添加儘可能多的ImageSpansSpannable。只需按照您所鏈接的代碼所闡述的概念進行操作即可。您可能也想使用SpannableStringBuilder

 
SpannableStringBuilder ssb = new SpannableStringBuilder("Some Text"); 
Bitmap image1 = BitmapFactory.decodeResource(getResources(), R.drawable.yourimage1); 
Bitmap image2 = BitmapFactory.decodeResource(getResources(), R.drawable.yourimage1); ssb.setSpan(new ImageSpan(image1), 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
ssb.setSpan(new ImageSpan(image2), 2,3, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
deleteButton.setText(ssb, BufferType.SPANNABLE); 

我試過上面的代碼,它工作正常。我在一個文本視圖中添加了兩個圖像範圍,同樣,您可以將多個圖像範圍添加到textview

相關問題