2013-03-25 2 views
3

내 문제는 here과 매우 비슷합니다. 하지만 Android 4.2 기기에서 테스트 할 때만 나타납니다. 안드로이드 2.2 이전 테스트 장치에서 모든 것이 아주 잘 작동합니다.ImageSpan은 Android 4.2에서 다음 텍스트를 삭제합니다. 젤리

내 문제

내가 쉘이 텍스트 뷰의 한 문자를 대체 텍스트 뷰의 중간에 ImageSpan을 추가 해요. 안드로이드 4.2 ImageSpan 후 텍스트가 표시됩니다. Android 2.2에서는 모든 것이 예상대로 작동합니다.

코드 샘플

CharSequence chars = txtView.getText(); 
    SpannableStringBuilder stringBuilder = new SpannableStringBuilder(chars); 

    for (int i = 0; i < chars.length(); i++) { 
     int codePoint = Character.codePointAt(chars, i); 
     if (codePoint > 255) { 
       // loading the bitmap ... 
       ImageSpan img = new ImageSpan(context, bmp, ImageSpan.ALIGN_BASELINE); 
       stringBuilder.replace(i, i + 1, ""); 
       stringBuilder.setSpan(img, i, i + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 
     } 
    } 
    txtView.setText(stringBuilder, BufferType.SPANNABLE); 

스크린 샷 지금까지 시도했습니다 무엇

Android 2.2 Screenshot which shows how it should be Android 4.2 Screen which shows the bug

setSpan에 추가 할 수있는 거의 모든 Spanned -Constant를 시도했지만 4.2 장치에서는 작동하지 않습니다.

답변

3

나는이 게시물을 게시하는 것이 유감이며, 직접 답변을 찾았습니다. 전에 실제로 Spanned.SPAN_INCLUSIVE_EXCLUSIVE을 시도했다고 생각했지만 분명히하지 않았습니다. 어쨌든 ... 안드로이드 4.2 안드로이드 2.2에서 나를 위해

stringBuilder.setSpan(img, i, i + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

작품. 다행스럽게도이 스레드는 앞으로 다른 사람을 도울 것입니다.