Android 에서 TextView 는 세그먼트 별로 다른 색상 의 문자열 을 표시 합 니 다.

TextView 에 대하 여
TextView 는 안 드 로 이 드 개발 에서 가장 흔히 볼 수 있 는 컨트롤 중 하나 로 API 기록 의 속성 이 많 지만 실제 개발 에서 도 재 미 있 는 수요 가 많아 시도 해 볼 만하 기 때문에 기록 하면 참고 할 수 있 을 뿐만 아니 라 필요 할 때 도 쉽게 찾 을 수 있 습 니 다.
최근 개발 과정 에서 TextView 에 표 시 된 내용 은 단계별 로 서로 다른 색 을 표시 해 야 한 다 는 작은 지식 이 있 습 니 다.아래 그림 과 같 습 니 다.

일반적으로 세 가지 실현 방식 이 있다.
  • 필요 에 따라 세그먼트 문자열 을 직접 나 눈 다음 에 여러 개의 TextView 로 표시 합 니 다
  • spannablestring 사용
  • Html 사용
  • 다음은 세 가지 방법 을 간단하게 소개 하 겠 습 니 다.
    다 중 TextVew
  • 이런 방식 은 간단 하고 거 칠 며 색채 스타일 의 통제 가 유연 하 다
  • 표시 할 텍스트 가 여러 단락 으로 나 뉘 어야 한다 면 여러 개의 TextView 가 필요 하고 레이아웃 이 제어 되 지 않 습 니 다
  • 실현 방식 이 간단 하면 예 를 쓰 지 않 는 다
  • SpannableString 사용 하기
    사용 해 본 사람 은 모두 알 고 있 을 것 입 니 다.가장 좋 은 점 은 SpannableString 이 긴 문자열 중 몇 번 째 부터 몇 번 째 문자 의 스타일 을 정확하게 제어 할 수 있다 는 것 입 니 다.
    
    SpannableString spannableString = new SpannableString("jakjfkajfjaj");
    //    
    spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FE6026")), 3, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //      ,true         20   dip
    spannableString.setSpan(new AbsoluteSizeSpan(20, true), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //    
    spannableString.setSpan(new URLSpan("www.baidu.com"), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //    ,BOLD   
    spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    이상 은 몇 가지 흔히 볼 수 있 는 용법 만 열거 하 였 을 뿐,더 많은 것 은 android.text.style 가방 아래 의 몇 가지 유형 을 참고 할 수 있 습 니 다.
     
    위의 SpannableString 의 한계 가 있 는 지 모 르 겠 습 니 다.맞습니다.SpannableString 의 장점 은 정교 하 게 제어 하 는 것 이 고 단점 도 여기에 있 습 니 다.우 리 는 SpannableString 을 사용 할 때 스타일 에 사용 할 문자 아래 표 시 를 지정 해 야 합 니 다.만약 우리 의 문자열 이 고정 길이 가 아니라면?
    Html 사용
    필드 를 사용 하면 문자열 길이 가 고정 되 지 않 습 니 다.예 를 들 어 서버 의 데이터 로 채 워 야 합 니 다.
    
    "  :" + data1 + "  :" + data2
    서버 에서 되 돌아 오 는 데이터 길이 가 일정 하지 않 으 면 SpannableString 을 사용 하 는 것 이 어색 합 니 다.이 럴 때 Html 을 사용 하 는 것 을 고려 할 수 있 습 니 다.
    Html 은 사용 형식 이 간단 합 니 다.font 라벨 을 사용 해 야 합 니 다.구체 적 으로 다음 예 를 보 세 요.
    
    //        
    String content = "<font color=\"#FE6026\">" + data + "</font>"
    //    setText()
    TextView tvContent = (TextView) view.findViewById(R.id.tvContent);
    tvContent.setText(Html.fromHtml(content));
    이상 은 TextView 세그먼트 에 서로 다른 스타일 의 문자열 을 표시 하 는 방법 입 니 다.유용 하 시 기 를 바 랍 니 다.
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기