Entre em contato com o EditText da bolha

Eu estou tentando criar bolhas de contato noMultiAutoCompleteTextView semelhante a como isso é implementado no aplicativo do Google+. Abaixo está uma captura de tela:

.

Eu tentei estender oDynamicDrawableSpan classe, a fim de obter uma drawable drawable no fundo de um espaço de texto

public class BubbleSpan extends DynamicDrawableSpan {
  private Context c;

  public BubbleSpan(Context context) {
    super();
    c = context;
  }

  @Override
  public Drawable getDrawable() {
    Resources res = c.getResources();
    Drawable d = res.getDrawable(R.drawable.oval);
    d.setBounds(0, 0, 100, 20);
    return d;
  }
}

Onde meu oval.xml drawable é definido assim:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
  <solid android:color="#352765"/>
  <padding android:left="7dp" android:top="7dp"
    android:right="7dp" android:bottom="7dp" />
  <corners android:radius="6dp" />
</shape>

Na minha classe de atividade que tem oMulitAutoCompleteTextView, Eu defino o intervalo de bolha da seguinte forma:

final Editable e = tv.getEditableText();
final SpannableStringBuilder sb = new SpannableStringBuilder();
sb.append("some sample text");
sb.setSpan(new BubbleSpan(getApplicationContext()), 0, 6, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
e.append(sb); 

No entanto, em vez da forma oval exibida atrás dos 6 primeiros caracteres da string, os caracteres não são visíveis e não há um desenho oval em segundo plano.

Se eu mudar o método getDrawable () do BubbleSpan para usar um .png em vez de uma forma drawable:

public Drawable getDrawable() {
  Resources res = c.getResources();
  Drawable d = res.getDrawable(android.R.drawable.bottom_bar);
  d.setBounds(0, 0, 100, 20);
  return d;
}

Em seguida, o arquivo .png será exibido, mas os caracteres da string que fazem parte do intervalo não serão exibidos. Como posso fazer com que os caracteres no intervalo sejam exibidos em primeiro plano, enquanto uma forma de desenhar personalizada é exibida em segundo plano?

Eu tentei também usar umImageSpan em vez de subclassificaçãoDynamicDrawableSpan mas não teve sucesso.

questionAnswers(3)

yourAnswerToTheQuestion