傳送門:上一節
玄鐵劍
金庸武俠第一神劍!劍魔獨孤求敗四十歲前持之橫行天下,後為神鵰俠楊過所得,持之亦無敵於天下。神鵰俠隱退前將此劍贈與小東邪郭襄。襄陽城破前,郭靖、黃蓉夫婦請高明工匠熔之鑄成倚天劍、屠龍刀二神兵,並藏《九陰真經》、《降龍十八掌掌譜》與《武穆遺書》於其中。此劍劍身長愈三尺,兩邊劍鋒均為鈍口,劍尖圓圓似是半球,通體深黑,卻隱隱透出紅光。劍以玄鐵製成,共重八八六十四斤。玄鐵乃天下至寶,便是要得一兩也是絕難,尋常刀槍劍戟之中,只要加入半兩數錢,凡鐵立成利器。“重劍無鋒,大巧不工”,其中境界,遠勝世上諸般最巧妙的劍招。越是平平無奇的劍招,對方越難抗禦。如挺劍直刺,只要勁力強猛,威力遠比變幻奇妙的劍招更大。
本節我們學習如何利用Android平台“玄鐵劍”TextView來實現跑馬燈效果,下面給出該情景的案例:
一、案例技術要點
1.TextView布局設定
android:ellipsize="marquee":當需要顯示常值內容超過TextView的寬度(在該情境下為進出螢幕)的時候,顯示效果為marquee動畫(文字中部透明)。
android:marqueeRepeatLimit="marquee_forever":設定採用marquee動畫的顯示效果的次數為無限次。
android:focusable="true":設定當前View能夠擷取焦點
android:focusableInTouchMode="true":設定當前View能夠在觸摸模式下擷取焦點
2.android.text.Html.fromHtml(...):提供包含Html標籤格式的常值內容。
3.android.text.method.LinkMovementMethod:提供超連結功能。TextView需要此功能時引入該類的執行個體即可。
二、案例代碼陳列
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.textview" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".TextViewMainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
strings.xml
<resources> <string name="app_name">Textview實現跑馬燈效果</string></resources>
main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusable="true" android:focusableInTouchMode="true" android:background="#FFFFFF" android:textColor="#000" android:textSize="20sp" android:layout_margin="10dp" android:padding="10dp" /> </LinearLayout>
TextViewMainActivity.java
package com.android.textview;import android.app.Activity;import android.os.Bundle;import android.text.Html;import android.text.method.LinkMovementMethod;import android.widget.TextView;/** * TextView案例四:實現跑馬燈效果 * @author lynnli1229 */public class TextViewMainActivity extends Activity { private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) findViewById(R.id.tv); String html = "在南京,康瑛與紅軍除奸隊匯合,殺死了叛徒顧一夫。 在117師<a href='http://www.baidu.com'>江波</a>、藤玉蓮被宣子奇放出,經組織批准二人舉行婚禮,何昆、羅茂莉(奉命調查通江事件)在婚禮現場大驚失色。 羅茂莉著手調查通江事件,在審訊江波、藤玉蓮的同時又詢問了洪爾貴、嬌妮、曾兆君等人,均未找出可疑之處,情急之中,何昆甚至懷疑到了宣子奇頭上,何昆被調回長官部,羅茂莉被任命為駐宣子奇部的特派員。羅茂莉愛江波,她妒忌江、藤二人,她把江波調往七十二師,有意分離江波、藤玉蓮。"; CharSequence charSequence = Html.fromHtml(html); textView.setText(charSequence); textView.setMovementMethod(LinkMovementMethod.getInstance()); }}
三、案例效果展示