標籤:
1.
點選連結並且可以跳轉到響應的網頁中去
2. 實現代碼
textView1 = ( TextView ) this.findViewById ( R.id.textview1 );textView2 = ( TextView ) this.findViewById ( R.id.textview2 );String html = "<font color=‘red‘>I love android</font><br>";//設定字型為紅色,然後換行html += "<font color=‘#0000ff‘><big><i>I love Java</i></big></font><p>";//設定字型藍色,大號,斜體,設為一段html += "<big><a href=‘http://www.baidu.com‘>百度</a></big>";//為百度這個文字添加超連結CharSequence charSequence = Html.fromHtml ( html );textView1.setText ( charSequence );textView1.setMovementMethod ( LinkMovementMethod .getInstance ( ) );//設定文本中的資訊點擊能夠產生超連結String text = "我的URL:http://www.sina.com\n";text += "我的Email:[email protected]\n";text += "我的電話:+ 86 010-87439874";textView2.setText ( text );textView2.setMovementMethod ( LinkMovementMethod .getInstance ( ) );
3. 說明
常用的可以再TextView中設定的標籤有:
- <font>:設定顏色和字型。
- <big>:設定字型大號
- <small>:設定字型小號
- <i><b>:斜體粗體
- <a>:串連網址
- <img>:圖片
使用這些標籤可以用Html.fromHtml方法將這些標籤的字串轉換成CharSequence介面,然後在 TextView.setText()中進行設定。如果需要響應設定的HTML標籤進行響應,需要設定 TextView.setMovementMethod(LinkMovementMethod.getInstance())。
android:autoLink屬性來設定,以下是android:autoLink屬性的介紹:
- None:預設的,不匹配任何串連。
- web:網址。
- email:郵箱。
- phone:電話號碼。
- map:匹配映射網址。
- all:匹配所有串連。
-------------------------------------------------------------------------------------------------------------------------------
實現代碼
public int getResouceId(String name){try {//根據資源的ID的變數名獲得Field的對象,使用反射機制來實現的Field field=R.drawable.class.getField(name);//取得並返回資源的Id的欄位(靜態變數)的值,使用反射機制return Integer.parseInt(field.get(null).toString());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return 0;}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView textView=(TextView)this.findViewById(R.id.textview1);textView.setTextColor(Color.BLACK);textView.setBackgroundColor(Color.WHITE);textView.setTextSize(20);String html="映像1<img src=‘v078_24‘/>映像2<img src=‘v079_24‘/>映像3<img src=‘v080_24‘/><p>";html+="映像4<a href=‘http://www.baidu.com‘><img src=‘v081_24‘></a>映像5<img src=‘v082_24‘/>";CharSequence charSequence=Html.fromHtml(html, new ImageGetter() {@Overridepublic Drawable getDrawable(String source) {//獲得系統資源的資訊,比片的資訊Drawable drawable=getResources().getDrawable(getResouceId(source));//第三個圖片檔案按照50%的比例進行壓縮if(source.equals("v080_24")){drawable.setBounds(0, 0, drawable.getIntrinsicWidth()/2, drawable.getIntrinsicWidth()/2);}else{drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());}return drawable;}}, null);textView.setText(charSequence);textView.setMovementMethod(LinkMovementMethod.getInstance());}
-----------------------------------------------------------------------------------------------------------------------------
啟動Activity
TextView textView1=(TextView)this.findViewById(R.id.textview1);TextView textView2=(TextView)this.findViewById(R.id.textview2);String text1="顯示Activity1";String text2="顯示Activity2";//主要用來拆分字串SpannableString spannableString=new SpannableString(text1);SpannableString spannableString2=new SpannableString(text2);spannableString.setSpan(new ClickableSpan() {//設定字串的整個長度都能點擊有效@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent=new Intent(MainActivity.this, Activity1.class);startActivity(intent);}}, 0, text1.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);spannableString2.setSpan(new ClickableSpan() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent=new Intent(MainActivity.this, Activity2.class);startActivity(intent);}}, 0, text2.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);textView1.setText(spannableString);textView2.setText(spannableString2);// 設定點選連結可以跳轉textView1.setMovementMethod(LinkMovementMethod.getInstance());textView2.setMovementMethod(LinkMovementMethod.getInstance());
-----------------------------------------------------------------------------------------------------------------------------
Android -- TextView (3)