Android在一个编辑文本中添加更多笑脸?

Android在一个编辑文本中添加更多笑脸?,android,Android,我需要在一个编辑文本框中添加多个笑脸。为了增加一个微笑,我跟随 如何在单个编辑文本框中添加更多笑脸?提前感谢。您可以向Spannable添加任意数量的imagesspans。只需遵循您链接的代码所列出的概念。您可能也想使用SpannableStringBuilder Drawable happySmiley = mContext.getResources().getDrawable(R.drawable.happy); happySmiley .setBounds(0, 0, d.getIntr

我需要在一个编辑文本框中添加多个笑脸。为了增加一个微笑,我跟随


如何在单个编辑文本框中添加更多笑脸?提前感谢。

您可以向
Spannable
添加任意数量的
imagesspan
s。只需遵循您链接的代码所列出的概念。您可能也想使用
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);
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 );
显然,您可以使用任何您喜欢的锚文本/字符-插入
ImageSpan
时,它会被替换。它甚至可以与空字符/字符串一起工作,但我没有尝试过。

您可以向
Spannable
添加任意数量的
imagespan
。只需遵循您链接的代码所列出的概念。您可能也想使用
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);
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 ); SpannableStringBuilder ssb=新的SpannableStringBuilder(“某些文本”); 位图image1=BitmapFactory.decodeResource(getResources(),R.drawable.yourimage1); 位图image2=BitmapFactory.decodeResource(getResources(),R.drawable.yourimage1);ssb.setSpan(新图像SPAN(图像1),0,1,Spannable.SPAN_包括在内); ssb.setSpan(新图像SPAN(图像2),2,3,SPANABLE.SPAN_包括在内); deleteButton.setText(ssb,BufferType.Spanable);
我试过上面的代码,效果很好。我在一个文本视图中添加了两个图像span,同样,您可以在
textview
中添加尽可能多的图像span

在本例中,它用imagespan对象替换从开始到结束的文本…你知道如何将imagespan放置在光标所在的位置吗?@ShailAdi:你是否尝试简单地将
imagespan
设置为起始和结束相等(在文本插入符号的位置)?或者,您可能需要先插入占位符字符。如果所有其他方法都失败了,那么就在这里开始一个新问题@嗯。是的…我尝试了相同的开始和结束,它根本没有放置图像。。。已开始为其使用占位符字符。谢谢:)在这里,您可以将图像放入编辑文本字段。