006.TextView運用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.app6.MainActivity" >

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:shadowColor="#ff0000"
        android:shadowDx="2"
        android:shadowDy="2"
        android:shadowRadius="1"
        android:text="@string/hello_world"
        android:textColor="#00ff00"
        android:textSize="26sp" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="29dp"
        android:text="abcdefghijklmn"
        android:textSize="26sp"
        android:textStyle="italic" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"
        android:singleLine="true"
        android:text="@string/str1" />

</LinearLayout>

  • activity_main2.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:typeface="monospace" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>

  • MainActivity.java
package com.example.app6;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.BackgroundColorSpan;
import android.text.style.ClickableSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
    TextView textView, textView2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        textView = (TextView) this.findViewById(R.id.textView1);
        textView2 = (TextView) this.findViewById(R.id.textView2);
        String text = "這是一個豐富的文字, 有連結,有顏色,有背景色,有粗體,斜體, 有圖片, 還可以點擊";
        // textView.setText(text);

        SpannableString ss = new SpannableString(text);
        ss.setSpan(new URLSpan("http://www.kimo.com"), 12, 14, 0);
        ss.setSpan(new ForegroundColorSpan(Color.RED), 16, 18, 0);
        ss.setSpan(new BackgroundColorSpan(Color.YELLOW), 20, 20 + 3, 0);
        ss.setSpan(new StyleSpan(Typeface.BOLD), 25, 25 + 2, 0);
        ss.setSpan(new StyleSpan(Typeface.ITALIC), 28, 28 + 2, 0);
        ss.setSpan(new ImageSpan(this, R.drawable.ic_launcher), 32, 32 + 2, 0);
        ss.setSpan(new ClickableSpan() {
            @Override
            public void onClick(View widget) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, "Hello", Toast.LENGTH_SHORT)
                        .show();
            }
        }, 40, 40 + 2, 0);
        textView.setText(ss);
        textView.setMovementMethod(LinkMovementMethod.getInstance());

        String htmlText = "Applove";
        SpannableString spanned = new SpannableString(htmlText);
        spanned.setSpan(new ImageSpan(this, R.drawable.love), 3, 3 + 1, 0);
        textView2.setText(spanned);
        this.setTitle(spanned);

        String tmp = "abcd";
        SpannableString ss2 = new SpannableString(tmp);
        for (int i = 0; i < 4; i++) {
            ss2.setSpan(new ImageSpan(this, R.drawable.love), i, i + 1, 0);
        }
        this.setTitle(ss2);

    }

}