一、样式

设置下划线:

textView.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线

textView.getPaint().setAntiAlias(true);//抗锯齿

设置点击事件:

xml:   android:clickable="true"

java:  textView.setClickable(true);

textView.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0){

Uri uri=Uri.parse("tel:1111");

Intent intent=new Intent(Intent.ACTION_DIAL,uri);

startActivity(intnet);

}}

为TextView添加超链接

a:

String  string="https://www.baidu.com/";

SpannableString spstring=new SpannableString(string);//设置超链接

spstring.setSpan(new URLSpan(spstring),0,string.length(),

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

textView.setText(string);

textView.setMovementMethod(LinkMvoementMethod.getInstance());

这样TextView就成了超链接方式,用户点击后就可以直接调用浏览器跳转到对应页面

b:

TextView tsyle01 = (TextView) findViewById(R.id.tsyle01);
String text="Visit <a href=\"http://manning.com/\">Manning home page</a>";
tsyle01.setText(Html.fromHtml(text));
tsyle01.setMovementMethod(LinkMovementMethod.getInstance());

为TextView添加加粗斜体显示

String string=“设置斜体”;

SpannableString sp=new SpannableString("设置斜体");//设置斜体

sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC),0,steing.length(),

Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

textView.setText(sp);

为不同字段设置不同样式:

TextView tstyle02=(TextView) findViewById(R.id.tstyle02);
String text01="Hello World,HomeActivity";
Spannable sText=new SpannableString(text01);
sText.setSpan(new BackgroundColorSpan(Color.RED),1,4,0);
sText.setSpan(new ForegroundColorSpan(Color.BLUE),5,9,0);
tstyle02.setText(sText);

二、跑马灯】

Android系统中TextView实现跑马灯效果,须具备以下几个条件:

1.android:ellipsize="marquee"

2.TextView必须单行显示,即内容必须超出TextView大小

3.TextView要获得焦点才能滚动

android:focusableInTouchMode="true"

android:focusable="true"

XML代码:

android:ellipsize="marquee"

android:singleLine="trye"

Java代码:

mText.setText("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa很长的数据");

mText.setSingleLine(true);

mText.setEllipsize(TruncateAt.MARQUEE);   //让文字水平滑动

TextView还可设置跑马灯效果的滚动次数,如下:

XML代码设置:

android:marqueerpeatlimit="1"              1代表一次,-1代表无限循环

Java代码设置:

tText.setMarqueeRepeatLimit(-1);

但是这样子有一个缺点,就是这种状态的跑马灯只能在TextView处于焦点状态的时候,它才会滚动,对于实际的开发应用中很不实用,为了是跑马灯无论在什么情况下都能跑起来,这里需要自定义一个TextView,它继承TextView,并且重写isFocuse()方法,让它永远返回true,这样跑马灯效果就能一直的跑起来了。

public class MarqueeTextView extends TextView {

 public MarqueeTextView(Context context) {
super(context);
} public MarqueeTextView(Context context, AttributeSet attrs) {
super(context, attrs);
} public MarqueeTextView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
} @Override
public boolean isFocused() {
return true;
} }

在xml中引用

<com.sss.widget.view.MarqueeTextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:text="@string/marquee_text1" />

三、TextSwitcher:

activity_main.xml:

   <TextSwitcher
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="6sp"
android:textSize="20sp" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/click"
android:clickable="true"/>

fade_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

   <translate
android:fromXDelta="-100%"
android:toXDelta="0%"
android:duration="300"/>
</set>

faade_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="100%"
android:duration="300"/> </set>

MainActivity.java

public class MainActivity extends Activity implements ViewSwitcher.ViewFactory {
TextSwitcher t1;
Button btn1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextSwitcher) findViewById(R.id.t1);
t1.setFactory(this);
Animation in = AnimationUtils.loadAnimation(this, R.anim.fade_in);
Animation out = AnimationUtils.loadAnimation(this, R.anim.fade_out);
t1.setInAnimation(in);
t1.setOutAnimation(out);
btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
t1.setText(String.valueOf(new Random().nextInt())); }
}); } @Override
public View makeView() {
TextView textView = new TextView(this);
return textView;
} }

Randroid.R.anim.fade_in,这是一个淡入效果,也可以使用其他效果,步骤相同。ImageSwitcher和TextSwitcher原理相同

android:为TextView添加样式、跑马灯、TextSwitcher和ImageSwitcher实现平滑过渡的更多相关文章

  1. Hackfive 使用TextSwitcher和ImageSwitcher实现平滑过渡

    1. 应用场景: 通过向左和向右的导航按钮浏览日期列表 在日期选择空间中改变日期 倒计时始终 新闻刚要 2.用到的知识点是:     TextSwitcher和ImageSwitcher     Te ...

  2. Android:TextView 自动滚动(跑马灯) (转)

    Android:TextView 自动滚动(跑马灯)       TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true ...

  3. Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]

    有时候在xml中写的跑马灯效果不滚动:原因有以下 Android系统中TextView实现跑马灯效果,必须具备以下几个条件: 1.android:ellipsize=”marquee” 2.TextV ...

  4. TextView来实现跑马灯的效果

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  5. Android 实现多行文本跑马灯效果

    Android TextView 实现跑马灯的效果很简单,只要加三个属性就可以了. android:ellipsize="marquee" android:focusable=&q ...

  6. TextView中实现跑马灯的最简单方法

    几行代码实现跑马灯效果,效果如下: 因为很简单,所以就直接贴代码喽 <TextView android:id="@+id/item1_title_message" andro ...

  7. android 为TextView添加边框

    今天需要在TextView上面添加一个边框,但是TextView本身不支持边框,所以只能采用其他方式,在网上查询了一下,主要有三种方式可以实现1.带有边框的透明图片2.使用xml的shape设置3继承 ...

  8. Android学习十二:跑马灯程序实现(简单联系)

    package org.tonny; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; ...

  9. Android 为 TextView 添加超链接 (网址,邮件,电话)

    <string name="info">Cette application a été développée par <a href="http://w ...

随机推荐

  1. 简单理解函数声明(以signal函数为例)

    这两天遇到一些声明比较复杂的函数,比如signal函数,那我们先简单说说signal函数的用法:(参考<c陷阱与缺陷>) [signal:几乎所有c语言程序的实现过程中都要用到signal ...

  2. 【java+selenium3】Actions模拟鼠标 (十一)

    一.鼠标操作 WebElement的click()方法可实现元素的点击操作,但是没有提供鼠标的右击/双击/悬停/鼠标拖动等操作.这些操作需要通过Action类提供的方法来实现! Action常用的ap ...

  3. HTML基本使用

    HTML初识 (Hyper Text Markup Language): 超文本标记语言 「HTML骨架格式」 <!-- 页面中最大的标签 根标签 --> <html> < ...

  4. codeforces心得1---747div2

    codeforces心得1---747div2 cf div2的前AB题一般是字符串or数论的找规律结论题 因此标程极为精简 1.小窍门是看样例或者自己打表或造数据找规律 2.一些不确定的操作,可以化 ...

  5. Vue组件传值prop验证方式

    在Vue组件开发过程中,父组件要经常给子组件传递数据,在传递数据的过程中,子组件可以使用prop来接收父组件传递的值,同时呢,我们可以为组件的 prop 指定验证要求,例如你知道的这些类型.如果有一个 ...

  6. .net工程师学习vue的心路历程(一)

    实习一年后,想做一个属于自己的博客网站,准备用core api去搭建服务端接口,前端准备采用vue这样的一个框架.本身时一个服务端程序员,所以来学习记录一些vue的知识点,有什么不足的希望大家指正,谢 ...

  7. Maven 依赖调解源码解析(二):如何调试 Maven 源码和插件源码

    本文是系列文章<Maven 源码解析:依赖调解是如何实现的?>第二篇,主要介绍如何调试 Maven 源码和插件源码.系列文章总目录参见:https://www.cnblogs.com/xi ...

  8. python读写文件with open

    简介 使用python的过程中肯定少不了读取文件的操作, 传统的形式是使用 直接打开.然后在操作.然后再关闭, 这样代码量稍微大些不说,一旦在操作步骤中出现报错,则无法进行文件的关闭: 案例一(读取) ...

  9. BootStrap中模态框踩坑

    在模态框中使用html标签上的自定义属性来打开模态框后,在使用JS关闭模态框,就会出现多层蒙板问题 出现这个问题的原因就是没有仔细看bootstrap的官方文档,我人麻了,搞了好久 务必将模态框的 H ...

  10. [bzoj1189]紧急疏散

    二分答案+判定,对于一个答案,源点向每一个点连一条流量为1的边,每一扇门向汇点连一条流量为时间的边,每一个人向每一个在答案时间内能走到的门连一条流量为1的边,跑最大流并判断流量是否等于人数. 然而自从 ...