Próbuję utworzyć bąbelki kontaktowe w numerze MultiAutoCompleteTextView
, podobne do tego, w jaki sposób jest ono zaimplementowane w aplikacji Google+. Poniżej znajduje się zrzut ekranu:Kontakt Bubble EditText
.
Starałem się rozszerzyć klasę DynamicDrawableSpan
w celu uzyskania spannable rozciągliwej w tle rozpiętości tekstu
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;
}
}
Gdzie moja oval.xml odkształcalne jest zdefiniowany jako tak:
<?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>
W mojej klasie działalności, która ma MulitAutoCompleteTextView
, ustawić rozpiętość bańka tak:
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);
Jednak zamiast owalnego kształtu wyświetlanego za pierwszymi 6 znakami w ciągu znaków znaki są niewidoczne, aw tle nie ma rysunków owalnych.
Jeśli mogę zmienić metodę BubbleSpan za getDrawable(), aby użyć .png zamiast kształtu rozciągliwej:
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(android.R.drawable.bottom_bar);
d.setBounds(0, 0, 100, 20);
return d;
}
.png Następnie pojawi się jednak w ciąg znaków, które są częścią zakres nie pojawi się. Jak mogę to zrobić, aby znaki w zakresie były wyświetlane na pierwszym planie, a tymczasem niestandardowy ciąg do rysowania zostanie wyświetlony w tle?
Podjęto próbę użycia również ImageSpan
zamiast podklasy DynamicDrawableSpan
, ale zakończyło się to niepowodzeniem.
możliwe duplikat [Etykiety Android lub pęcherzyków w EditText] (http://stackoverflow.com/questions/8090711/android-labels-or-bubbles-in-edittext) –
Jak wybrane są coraz numery kontaktowe – srihari
everthing jest w porządku, teraz jak obsługiwać kliknięcie obrazu krzyżowego, chcę aby usunąć widok, jeśli użytkownik kliknął ikonę krzyża, proszę o pomoc. – shaby