Android 는 TextView 를 사용 하여 밑줄 없 는 하이퍼링크 를 실현 하 는 방법

이 사례 는 안 드 로 이 드 가 TextView 를 사용 하여 밑줄 없 는 하이퍼링크 를 실현 하 는 방법 을 보 여 준다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
Android 시스템 은 기본적으로 인터넷 주소,전화,지도(geo 주소),메 일 등 을 하이퍼링크 로 변환 합 니 다.
구체 적 으로 살 펴 보 세 요android:TextView 에서 텍스트 스타일 과 하이퍼링크 를 간단하게 설정 하 는 방법
HTML 과 마찬가지 로 기본 하이퍼링크 는 밑줄 이 있 습 니 다.아래 방안 은 TextView 에서 하이퍼링크 의 밑줄 을 제거 할 수 있 습 니 다.
1.밑줄 스타일 을 없 애기 위해 ClickableSpan 클래스 를 다시 씁 니 다(시스템 은 기본적으로 ClickableSpan 을 사용 하여 하이퍼링크 를 패키지 합 니 다)

//       ,  textColorLink、textColorHighlight                 
private class NoLineClickSpan extends ClickableSpan {
  String text;
  public NoLineClickSpan(String text) {
    super();
    this.text = text;
  }
  @Override
  public void updateDrawState(TextPaint ds) {
    ds.setColor(ds.linkColor);
    ds.setUnderlineText(false); //     
  }
  @Override
  public void onClick(View widget) {
    processHyperLinkClick(text); //        
  }
}

2.하이퍼링크 텍스트 를 NoLine ClickSpan 대상 으로 밀봉 하고 TextView 에 추가 합 니 다.

TextView tv = findViewById(R.id.tv_click);
SpannableString spStr = new SpannableString("  -->https://www.jb51.net");
ClickSpan clickSpan = new NoLineClickSpan(vo); //     
spStr.setSpan(clickSpan, 0, str.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
tv.append(spStr);
tv.setMovementMethod(LinkMovementMethod.getInstance());

PS:TextView 의 속성 autoLink 를"all"로 설정 하지 않 아 도 됩 니 다.
3、클릭 가능 한 상태 로 하이퍼링크 설정

tv.setMovementMethod(LinkMovementMethod.getInstance());
PS:NoLine ClickSpan 클래스 에서 onClick()리 셋 방법 을 실현 합 니 다.
더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.,,,,Android 개발 입문 및 진급 강좌,안 드 로 이 드 멀티미디어 조작 기법 모음(오디 오,비디오,녹음 등),Android 기본 구성 요소 사용법 요약,Android 보기 기술 요약Android 레이아웃 레이아웃 기법 요약
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기