有沒有一種方法可以將自定義可繪製(從資源)設置爲TextView的跨度,特別是ClickSpan?Android - 將自定義可繪製背景設置爲ClickSpan
谷歌返回通過覆蓋跨度updateDrawState()禁用的高光或改變顏色等許多答案,但我不知道怎麼能夠被拉伸設置爲背景。
我看到DynamicDrawableSpan的可能性,但我無法使其與ClickableSpan一起工作。這是我的代碼:
public class MyDynamicDrawableSpan extends DynamicDrawableSpan
{
private Context c;
public MyDynamicDrawableSpan(Context context) {
super();
c = context;
}
@Override
public Drawable getDrawable() {
Resources res = c.getResources();
Drawable d = res.getDrawable(R.drawable.span_background);
return d;
}
}
這是我如何使用它:
SpannableStringBuilder ssb = new SpannableStringBuilder(text);
MyDynamicDrawableSpan ddSpan = new MyDynamicDrawableSpan(getApplicationContext());
...
ssb.setSpan(ddSpan, start, end, 0);
ssb.setSpan(new ClickableSpan(...
這是行不通的。它只有幫助使跨度隱形。任何明智的想法?
你的span_background.xml文件是什麼樣的?我通過創建可繪製的形狀來嘗試類似的東西,但跨度顯示爲不可見。這是因爲一個可繪製的形狀必須設置在一個視圖的背景像一個按鈕? http://stackoverflow.com/questions/6674657/how-change-button-shape-using-xml-or-using-java-code – toobsco42
我正在做類似的東西在這裏http://stackoverflow.com/questions/10812316/ contact-bubble-edittext – toobsco42
這裏我已經解釋得很好。你可以看到我的[答案](http://krishnalalstha.wordpress.com/2012/06/07/making-gosmsproevernote-like-edittext/) –