我从昨天起就遇到了这个问题。我正在使用spannable string
并希望为其添加类似于chips的自定义形状:
以下是我修改spannable
字符串的代码:
s.setSpan(new BackgroundColorSpan(backgroundColor), currentIndex, currentIndex + words[i].length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
我尝试使用Bitmap
,但根据流程,我需要根据代码将Editable
转换为BitmapDrawable
:
BitmapDrawable bd = (BitmapDrawable) convertViewToDrawable(textView);
我面临的问题是我没有使用textView
。我正在处理AutoCompleteTextView
并将AutoCompleteTextView
转换为Bitmap
是不可能的(如果我在这里没有错)。
我怎样才能达到类似的效果?
我使用了以下shape
:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="1dp" android:color="#A6B0B8" />
<gradient android:startColor="#E5E5E6"
android:endColor="#B4B6B7"
android:angle="-270"/>
<corners android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"></corners>
</shape>
public class CustomDrawble extends DynamicDrawableSpan {
private Context mContext;
CustomDrawble(Context context){
super();
this.mContext = context;
}
@Override
public Drawable getDrawable() {
Resources res = mContext.getResources();
Drawable drawable = res.getDrawable(R.drawable.bubble);
drawable.setBounds(0,0,100,20);
return drawable;
}
}
申请上述Drawable
时,我使用了以下代码:
s.setSpan(new CustomDrawble(mContext), currentIndex, currentIndex + words[i].length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
从#Edit-1部分我得到了这个:
我在这里做错了什么?我使用Widget.SearchView
而不是TextView