Androidの開発はTextViewのハイパーリンクの5つの方法のソースコードの例を実現します。
AndroidがTextViewのハイパーリンクを実現するには、全部で5つの方法があります。
1.直接xmlファイルにautLink属性を配置する(簡単で使いやすく、効果は単一)
aut Link属性は全部で6つの値があります。それぞれnone(正常)、web(テキストをウェブサイトとして認識します。)、phone(テキストを電話番号として認識します。)、mail(テキストをメールアドレスとして認識します。)、map(これ、えっと、どう表現しますか?地図アプリケーションを開きます。all(テキストによって自動的に識別されます。)普通はallに設定すればいいです。この時はTextViewの電話番号、メールアドレス、ウェブリンクなどを自動的に識別します。この中で一番簡単な方法です。例えば:
TextViewは変換後のHTMLを直接表示できることを知っています。H 5の開発経験を生かして、ウェブページのハイパーリンクもTextViewで開くことができます。以下の通りです。
契約書を作成しさえすれば、これも実は簡単です。
strigs.xmlの定義は以下の通りです。
tv 4.set Movement Method(Link Movement Method.get Instance();
4.Spannable Stringを使ってハイパーリンクを実現する(効果は多様)
Spannable Stringの使用については、他の編を参照してください。
単一効果を設定:
カスタムのurlspanはURLSpanを継承し下線を取り除く。
1.直接xmlファイルにautLink属性を配置する(簡単で使いやすく、効果は単一)
aut Link属性は全部で6つの値があります。それぞれnone(正常)、web(テキストをウェブサイトとして認識します。)、phone(テキストを電話番号として認識します。)、mail(テキストをメールアドレスとして認識します。)、map(これ、えっと、どう表現しますか?地図アプリケーションを開きます。all(テキストによって自動的に識別されます。)普通はallに設定すればいいです。この時はTextViewの電話番号、メールアドレス、ウェブリンクなどを自動的に識別します。この中で一番簡単な方法です。例えば:
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoLink="all"
android:text="
android:textSize="16dp" />
2.HTML言語を使用するTextViewは変換後のHTMLを直接表示できることを知っています。H 5の開発経験を生かして、ウェブページのハイパーリンクもTextViewで開くことができます。以下の通りです。
契約書を作成しさえすれば、これも実は簡単です。
tv1.setText(Html.fromHtml("<a href='tel:18565554482'> </a>,<a href='smsto:18565554482'> </a>,<a href='mailto:[email protected]'> </a>,<a href='http://www.baidu.com'>Go </a>"));
tv1.setMovementMethod(LinkMovementMethod.getInstance());
3.stings.xmlに直接HTMLを書いてTextViewのxmlに直接引用すればいいです。strigs.xmlの定義は以下の通りです。
<string name="tv4"><a href='tel:18565554482'> </a>,<a href='smsto:18565554482'> </a>,<a href='mailto:[email protected]'> </a>,<a href='http://www.baidu.com'>Go </a></string>
TextViewのXML定義は以下の通りである。
<TextView
android:id="@+id/tv4"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center"
android:text="@string/tv4"
android:textSize="24sp" >
</TextView>
そしてActivityにこのTextViewを設定するだけでクリック可能な状態になればいいです。tv 4.set Movement Method(Link Movement Method.get Instance();
4.Spannable Stringを使ってハイパーリンクを実現する(効果は多様)
Spannable Stringの使用については、他の編を参照してください。
SpannableString ss = new SpannableString(" , , ,Go ");
ss.setSpan(new URLSpan("tel:18565554482"), 0, 3,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("smsto:18565554482"), 4, 7,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("mailto:[email protected]"), 8, 11,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new URLSpan("http://www.baidu.com"), 12, 16,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//SpannableString TextView
tv3.setText(ss);
// TextView
tv3.setMovementMethod(LinkMovementMethod.getInstance());
5.Spannable TextViewを使って実現する(効果は多様)単一効果を設定:
// Setup single span
SpannableTextView tv1 = (SpannableTextView) view.findViewById(R.id.tv1);
Span span1 =
new Span.Builder("ForegroundSpan, BackgroundSpan, and CustomTypefaceSpan")
.foregroundColor(R.color.purple_500)
.backgroundColor(R.color.green_500)
.typeface(mItalicFont)
.build();
tv1.setFormattedText(span1);
多重効果の重ね合わせを設定します。
// Setup multiple spans
SpannableTextView tv2 = (SpannableTextView) view.findViewById(R.id.tv2);
List<Span> spans1 = new ArrayList<>();
spans1.add(new Span.Builder("ForegroundSpan")
.foregroundColor(R.color.red_500)
.build());
spans1.add(new Span.Builder("BackgroundSpan")
.backgroundColor(R.color.yellow_500)
.build());
spans1.add(new Span.Builder("ForegroundSpan and BackgroundSpan")
.foregroundColor(R.color.orange_500)
.backgroundColor(R.color.blue_500)
.build());
spans1.add(new Span.Builder("ForegroundSpan, BackgroundSpan, and CustomTypefaceSpan")
.foregroundColor(R.color.green_500)
.backgroundColor(R.color.indigo_500)
.typeface(mRegularFont)
.build());
tv2.setFormattedText(spans1);
下線なしのハイパーリンクを実現:カスタムのurlspanはURLSpanを継承し下線を取り除く。
// urlspan
public class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
ds.setColor(Color.BLACK);
}
}
この記事は主に、Android TextViewのハイパーリンクのソースコードの例を5つ紹介します。AndroidがTextViewのハイパーリンクを実現することについて、以下の関連リンクをご覧ください。