我正在嘗試在MultiAutoCompleteTextView
中創建聯繫人泡泡,與Google+應用中的實現方式類似。以下是一個截圖:聯繫人泡泡EditText
。
我曾試圖擴大,以獲得spannable繪製文本
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;
}
}
跨度凡我oval.xml繪製被定義爲這樣的背景下DynamicDrawableSpan
類:
<?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>
在我的Activity類具有MulitAutoCompleteTextView
,我設置了泡跨度像這樣:
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);
但是,字符串中前六個字符後面顯示的橢圓形不是橢圓形,而是字符不可見,並且在背景中沒有橢圓形可繪製。
如果我改變BubbleSpan的getDrawable()方法,而不是使用一個形狀繪製爲.png:
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(android.R.drawable.bottom_bar);
d.setBounds(0, 0, 100, 20);
return d;
}
然後巴紐會出現,但該字符串中的字符是的一部分跨度不會顯示出來。我怎樣才能做到這一點,以便跨度中的字符顯示在前臺,同時可以在後臺顯示自定義形狀drawable?
我試圖也使用ImageSpan
,而不是繼承DynamicDrawableSpan
但不成功。
[Android的標籤或泡泡在EditText]可能的重複(http://stackoverflow.com/questions/8090711/android-labels-or-bubbles-in-edittext) –
如何獲取選定的聯繫電話 – srihari
Everthing很好,現在如何處理十字圖像點擊,我想要的如果用戶點擊十字圖標,請刪除該視圖,請幫助。 – shaby