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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端