본문 바로가기
프로그래밍/Android

Android Spannable 적용

by Mr-후 2018. 10. 23.
반응형

Android Spannable 적용 



거두절미하고 안드로이드에서 Spannable을 사용한 예제 코드다. 

본 내용은 지금 보고 있는 도서(깡샘의 안드로이드 프로그래밍)에서 보고 옮겨 두는 것이다. 실무에서 바로 바로 필요할 때 검색을 해서 사용하기도 하지만 유용하게 사용할 수 있는 코드나 사용법을 정리해 두면 좋다. 


String data = "복수초 \n img \n 이른봄 설산에서 만나는 복수초는 모든 야생화 찍사들의 로망이 아닐까 싶다."; 

이 문자열 중 "img" 라는 단어 위치에 이미지를 출력한다고 가정. 


//Spannable을 포함하는 문자열

SpannableStringBuilder builder = new SpannableStringBuilder(data); 


//img 문자열 시작 위치 

int start = data.indexOf("img"); 

if (start >- 1) {

//img 문자열의 끝 위치 

int end = start + "img".length();


//이미지 획득

Drawable dr = ResourceCompat.getDrawable(getResources(), R.drawable.img1, null); 


//이미지의 화면 출력 정보 설정

dr.setBounds(0, 0, dr.getIntrinsicWidth(), dr.getIntrinsicHeight()); 


//ImageSpan준비 

ImageSpan span = new ImageSpan(dr); 


//SpannableStringBuilder에 ImageSpan적용

builder.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 

}

SpannableStringBuilder의 마지막 설정 값 종류와 의미 

span이 적용된 좌우측에 문자열이 추가될 때, 어떤 span값을 적용할 건지에 대한 설정이다. 

- SPAN_EXCLUSIVE_EXCLUSIVE: 왼쪽 제거, 오른쪽 제거 

- SPAN_EXCLUSIVE_INCLUSIVE: 왼쪽 제거, 오른쪽 포함 

- SPAN_INCLUSIVE_EXCLUSIVE: 왼쪽 포함, 오른쪽 제거 

- SPAN_INCLUSIVE_INCLUSIVE : 왼쪽 포함, 오른쪽 포함 





반응형