final SpannableStringBuilder sb = new SpannableStringBuilder();
TextView tv = createContactTextView(contactName);
BitmapDrawable bd = (BitmapDrawable) convertViewToDrawable(tv);
bd.setBounds(0, 0, bd.getIntrinsicWidth(),bd.getIntrinsicHeight());
sb.append(contactName + ",");
sb.setSpan(new ImageSpan(bd), sb.length()-(contactName.length()+1), sb.length()- 1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
to_input.setText(sb);
public static Object convertViewToDrawable(View view) {
int spec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
view.measure(spec, spec);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
Bitmap b = Bitmap.createBitmap(view.getMeasuredWidth(), view.getMeasuredHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
c.translate(-view.getScrollX(), -view.getScrollY());
view.draw(c);
view.setDrawingCacheEnabled(true);
Bitmap cacheBmp = view.getDrawingCache();
Bitmap viewBmp = cacheBmp.copy(Bitmap.Config.ARGB_8888, true);
view.destroyDrawingCache();
return new BitmapDrawable(viewBmp);
}
public TextView createContactTextView(String text){
//creating textview dynamically
TextView tv = new TextView(this);
tv.setText(text);
tv.setTextSize(20);
tv.setBackgroundResource(R.drawable.oval);
tv.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_clear_search_api_holo_light, 0);
tv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Drawable co = ((TextView) v).getCompoundDrawables()[2];
if (event.getX() > v.getMeasuredWidth() - v.getPaddingRight()
- co.getIntrinsicWidth()) {
//tv.setText("");
Log.i(TAG, "clicked on delete button");
return true;
} else {
return false;
}
}
});
return tv;
}
Nó sẽ tạo khoảng cách với văn bản bên trong editText Nhưng tôi muốn xóa khoảng Cách nhấp vào nút xóa trong khoảng đó. Tôi đã viết mã cho nó "tv.setOnTouchListener (mới OnTouchListener() {................" trong hàm createContactTextView nhưng không hoạt động. }Xóa phần tử khi nhấp vào nút xóa của nó trong editText span
tôi đang tìm kiếm cho cùng ... Xin vui lòng chia sẻ mã nếu bạn đã tìm thấy giải pháp ... – VijayRaj
Tất nhiên là nó không phải. Chế độ xem văn bản không được sử dụng trực tiếp. TextView đã có một OnTouchListener, nhưng sau khi chỉ một bitmap của khung nhìn văn bản được hiển thị, không có EventListner nào nữa. – Servus7