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 টি অক্ষরের পিছনে ডিম্বাকৃতি আকারের পরিবর্তে অক্ষরগুলি দৃশ্যমান হয় না এবং পটভূমিতে কোনও ডিম্বাকৃতি আঁকতে পারে না।
যদি আমি বুবলস্পানের 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
তবে ব্যর্থ হয়েছিল।