本实验皆在android studio下完成。
TextView可以用来显示丰富的文本信息。
以下是设置字体颜色的三种方法:
第一种:直接在content_main.xml文件的TextView中加入textColor属性,
可以直接写上16进制颜色,也可以调用colors.xml文件的color,但是不可以直接写颜色的英文。下面是通过后者实现的,
第二种:先在content_main.xml里面添加上TextView的id,
然后在MainActivity.java的onCreate函数中添加以下代码,
TextView tv=(TextView)findViewById(R.id.tv);
SpannableStringBuilder style=new SpannableStringBuilder("欢迎收听你的月亮我的心,大家好,我就是曾小贤~");
style.setSpan(new ForegroundColorSpan(Color.RED),0,4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//EXCLUSIVE表示颜色设置不包括前面和后面
style.setSpan(new ForegroundColorSpan(Color.BLUE),5,11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.YELLOW),12,30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(style);
但是,本人在打开模拟器后显示“Unfortunately,…..has stoped.”,一直不成功。姑且跳过吧。
第三种:先在content_main.xml里面添加上TextView的id,
然后在MainActivity.java的onCreate函数中添加以下代码,
TextView tv=(TextView)findViewById(R.id.tv);
tv.setText(Html.fromHtml("欢迎收听<font color=blue>你的月亮我的心</font>,大家好,我就是曾小贤~"));
在这三种方法中,后两种可以改变文本的部分颜色,而第一种只能改变所有文本的颜色。
TextView有一个属性autolink是用来显示链接的,如web\email\phone等。
在TextView的text属性中可以用\n来表示换行。
实现跑马灯效果:
android:focusable="true"//是否获取聚焦
android:focusableInTouchMode="true"//是否在触屏下获取聚焦
android:ellipsize="marquee"//跑马灯
android:marqueeRepeatLimit="marquee_forever"//跑马灯循环次数
android:singleLine="true"//以一行显示
android:text="欢迎收听你的月亮我的心http://blog.csdn.net,大家好,我就是曾小贤13713713700"
效果如下:
TextView控件可以在程序中创建对象,也可以在xml布局文件中使用。推荐后者。