Ich versuche, Kontaktblasen in der MultiAutoCompleteTextView
ähnlich wie in der Google+ App implementiert zu erstellen. Unten ist ein Screenshot:Bubble EditText kontaktieren
.
Ich habe versucht, die DynamicDrawableSpan
Klasse zu erweitern, um eine spannable ziehbar im Hintergrund eine Spanne von Text
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;
}
}
Wo ist mein oval.xml ziehbar wie so definiert ist, zu erhalten:
<?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>
In meiner Aktivitätsklasse, die die MulitAutoCompleteTextView
hat, habe ich die Blase Spannweite wie so gesetzt:
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);
Anstelle der ovalen Form, die hinter den ersten 6 Zeichen in der Zeichenfolge angezeigt wird, sind die Zeichen jedoch nicht sichtbar, und im Hintergrund ist kein ovales Zeichen vorhanden.
Wenn ich die BubbleSpan des getDrawable() -Methode ändern, um eine .png anstelle einer Form zu verwenden ziehbar:
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(android.R.drawable.bottom_bar);
d.setBounds(0, 0, 100, 20);
return d;
}
Dann wird die .png angezeigt, aber die Zeichen in der Zeichenfolge, die ein Teil der sind span wird nicht angezeigt. Wie kann ich dafür sorgen, dass die Zeichen in der Spanne im Vordergrund angezeigt werden, während eine benutzerdefinierte Form im Hintergrund angezeigt wird?
Ich versuchte auch eine ImageSpan
anstelle der Unterklasse DynamicDrawableSpan
zu verwenden, war aber nicht erfolgreich.
mögliche duplikate von [Android Labels oder Bubbles in EditText] (http://stackoverflow.com/questions/8090711/android-labels-or-bubbles-in-edittext) –
Wie erhalten Sie ausgewählte Telefonnummern – srihari
Everthing ist in Ordnung, jetzt, wie man mit Kreuzbild klickt, ich will um die Ansicht zu entfernen, wenn der Benutzer auf das Kreuzsymbol klickt, bitte helfen Sie. – shaby