EditText 안에 이모티콘을 넣으려고합니다. 나는 그것을 할 수 있었지만 잘 작동하지만 소프트 키보드를 사용하는 EditText에서 이모티콘을 삭제하려고 할 때 문제가 발생합니다. 하나의 삭제 버튼 클릭으로이 작업을 수행 할 수 없습니다. 새로운 ImageSpan을 삽입 할 때 imageId를 바꾸지 만 아이콘을 삭제하려고하면 이미지를 삭제하기 전에 모든 imageId 문자를 삭제해야합니다.SpannableStringBuilder 및 ImageSpan이있는 EditText가 제대로 작동하지 않습니다.
String fileName = "emoticon1.png";
Drawable d = new BitmapDrawable(getResources(), fileName);
String imageId = "[" + fileName + "]";
int cursorPosition = content.getSelectionStart();
int end = cursorPosition + imageId.length();
content.getText().insert(cursorPosition, imageId);
SpannableStringBuilder ss = new SpannableStringBuilder(content.getText());
d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, cursorPosition, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
content.setText(ss, TextView.BufferType.SPANNABLE);
content.setSelection(end);
하나의 삭제 버튼을 클릭하여 이모티콘을 삭제해야합니다. 도와 주실 수 있겠습니까?
감사합니다.
이모티콘의 시작과 끝 위치를 저장하는 방법은 무엇입니까 ('HashMap')?! 모든 문자를 삭제할 때 위치가 해시 맵의 이모티콘의 끝인 지 확인해야합니다. 그렇다면 전체를 삭제하십시오. (하지만 이모티콘 전에 변경 사항을 처리해야합니다.) – longilong