मैं इस बात से MultiAutoCompleteTextView
परिचित होने की कोशिश कर रहा हूं कि Google+ ऐप में इसे कैसे लागू किया जाए। नीचे एक स्क्रीन शॉट है:
।
मैंने DynamicDrawableSpan
पाठ की अवधि के दौरान एक स्पैनियबल ड्रॉबल प्राप्त करने के लिए कक्षा का विस्तार करने की कोशिश की है
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;
}
}
जहाँ मेरा ओवल.एक्सएमएल ड्रिबल परिभाषित किया गया है:
<?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>
मेरे गतिविधि वर्ग में जो है 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);
हालांकि, स्ट्रिंग में पहले 6 पात्रों के पीछे प्रदर्शित होने वाले अंडाकार आकार के बजाय, वर्ण दिखाई नहीं देते हैं और पृष्ठभूमि में कोई अंडाकार खींचने योग्य नहीं है।
अगर मैं 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;
}
फिर .png दिखाई देगा लेकिन स्ट्रिंग में वर्ण जो कि स्पैन का एक हिस्सा है, दिखाई नहीं देगा। मैं इसे कैसे बना सकता हूं ताकि स्पैन में वर्ण अग्रभूमि में प्रदर्शित हो सकें, इस बीच पृष्ठभूमि में एक कस्टम आकार ड्रॉबल प्रदर्शित होता है?
मैंने ImageSpan
उपवर्ग के बजाय उपयोग करने का प्रयास किया DynamicDrawableSpan
लेकिन असफल रहा।