De Contact De La Bulle EditText
Je suis en train de créer le contact des bulles dans le MultiAutoCompleteTextView
similaire à la façon dont il est mis en œuvre dans l'application Google+. Ci-dessous est une capture d'écran:
.
J'ai essayé de prolonger la DynamicDrawableSpan
classe afin d'obtenir un spannable drawable dans le contexte d'une durée de texte
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;
}
}
Où mon oval.xml drawable est définie de la manière suivante:
<?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>
Dans mon Activité de classe qui a le MulitAutoCompleteTextView
, j'ai mis la bulle de la durée de la sorte:
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);
Cependant, au lieu de la forme ovale de l'affichage de derrière les 6 premiers caractères de la chaîne, les caractères ne sont pas visibles et il n'y a pas de forme ovale dessiné en arrière-plan.
Si je change le BubbleSpan de getDrawable() la méthode à utiliser .png au lieu d'une forme 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;
}
Alors la .png apparaîtra, mais les caractères dans la chaîne qui sont une partie de la plage ne sera pas affiché. Comment puis-je faire en sorte que les personnages dans la durée sont affichés dans l'avant-plan, en attendant une forme personnalisée drawable est affiché dans le fond?
J'ai tenté d'utiliser un ImageSpan
au lieu de sous-classement DynamicDrawableSpan
, mais en vain.
- double possible de Android Étiquettes ou des Bulles dans l'EditText
- Comment vous obtenez sélectionné les numéros de contact
- Tout s'est très bien, maintenant comment gérer la croix-cliquez sur l'image, je veux enlever l'affichage lorsque l'utilisateur cliquera sur l'icône en forme de croix, s'il vous plaît aider.
- github.com/splitwise/TokenAutoComplete pourrait être utile à certains
Vous devez vous connecter pour publier un commentaire.
Merci @chrish pour toute l'aide. Donc, voici comment je l'ai fait:
BitmapDrawable bd = new BitmapDrawable(bitmap); bd.setBounds(0,0,bitmap.getWidth(), bitmap.getHeight());
Qui fonctionne sur tous les appareils.Ici est une Solution complète pour vous
Voici le dossier de projet complet ,si vous voulez utiliser
Spannble
J'ai une bibliothèque qui correspond à ce que vous recherchez avec :
Jetez un oeil ici
Ici un démarrage rapide :
Ajouter ChipView à votre mise en page ou de la créer par programmation :
Init avec une liste de données qui s'étendent abstrait à Puce et un écouteur de clics (si vous voulez) :
Par défaut ChipView est affiché comme ceci :
Mais vous pouvez les personnaliser comme vous le souhaitez partir de l'ensemble de niveau de Puce :
Ce n'est pas un MultiAutocomplete mais vous pouvez gérer à imiter (je suis en train de l'utiliser comme ça)