Android TextView EditText 跑马灯 和 高亮显示 SpannableString

本文转自:http://chengyu2099.iteye.com/blog/1478172

Java代码

package com.zte.android.lession;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.BackgroundColorSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.URLSpan;
import android.widget.EditText;
import android.widget.TextView;
/**
 * @author rychenga
 * textview、edittext组件
 */
public class Activity_EditText_TextView_002 extends Activity
{
    private TextView tv1,tv2,tv3,tv4;
    private EditText et1,et2;
    /**
     * onCreate是Activity的生命周期方法之一。
     * 当系统创建Activity的对象实例时调用onCreate方法。
     * 这个方法是由系统自己调用的,一般不用管它。
     * 通常在该方法中创建或从XML Layout中装载视图或进行其他的初始化工作。
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        //设置视图
        setContentView(R.layout.textview_edittext_layout);
        /*** tv1   第一个textview用xml设置   */
        tv1 = (TextView)findViewById(R.id.lession002_textView1);
        tv1.setSelected(true);
        
        /*** 第二个textview用代码设置 */
        //获取textview组件
        tv2 = (TextView)findViewById(R.id.lession002_textView2);
        tv2.setText("nCreate是Activity的生命周期方法之一。当系统创建Activity的对象实例时调用onCreate方法。 ");
        tv2.setSingleLine();
        tv2.setTextColor(android.graphics.Color.WHITE);
        //设置跑马灯效果,需设置焦点
        tv2.setSelected(true);
        tv2.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        //跑马灯滚动次数
        tv2.setMarqueeRepeatLimit(4);
        
        //*********************设置超链接******************************
        /**  
          * new StrikethroughSpan() //设置删除线  
          * new URLSpan("http://www.baidu.com")//http超链接  
          * new URLSpan("tel:4155551212")//电话超链接  
          */ 
        tv4 = (TextView)findViewById(R.id.lession002_textView004);
        SpannableString ss = new SpannableString("我的Android博客,高亮测试SpannableString,0557-6230067");
        //设置超链接
        ss.setSpan(new URLSpan("http://iteye.com"), 2,9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        //设置高亮1
        ss.setSpan(new BackgroundColorSpan(Color.RED),9,11, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        //设置高亮2
        ss.setSpan(new ForegroundColorSpan(Color.YELLOW),12,16,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //设置电话链接
        ss.setSpan(new URLSpan("tel:05576230067"), 32, 44, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
        //设置可点击
        tv4.setMovementMethod(LinkMovementMethod.getInstance());
        tv4.setText(ss);
        /**
         * SpannableString或SpannableStringBuilder,
         * 它们的区别在于 SpannableString像一个String一样,
         * 构造对象的时候传入一个String,之后再无法更改String的内容,
         * 也无法拼接多个 SpannableString;
         * 而SpannableStringBuilder则更像是StringBuilder,
         * 它可以通过其append()方法来拼接多个String
         */
        et2 = (EditText)findViewById(R.id.lession002_editText2);
        et2.setLines(3);
        et2.setText("这是一个3行的,\n默认不能修改的\nedittext");
        et2.setEnabled(false);
    }
}

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/lession002_textView003"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="http://user.qzone.qq.com/464344269/infocenter"
        android:autoLink="web" />
    
     <TextView
        android:id="@+id/lession002_textView004"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
     
    <!-- xml 设置textview属性 -->
    <TextView
        android:id="@+id/lession002_textView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/lession002_edittext_textview001"
        android:textColor="@color/lession002_color_textview002"
        android:textSize="28dp"
        android:ellipsize="marquee"
        android:scrollHorizontally="true"
        android:singleLine="true"
        android:marqueeRepeatLimit="marquee_forever" />
    
    <!-- 代码设置 -->
    <TextView
        android:id="@+id/lession002_textView2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <!-- xml设置 -->
    <EditText
        android:id="@+id/lession002_editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请填写手机号码"
        android:phoneNumber="true" >
        
    </EditText>
     <!-- 代码设置 -->
    <EditText
        android:id="@+id/lession002_editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    
</LinearLayout>

posted @ 2013-07-04 10:27  似水流云  阅读(808)  评论(0编辑  收藏  举报