Android – TextView 字体样式、走马灯效果
一. 字体样式(java文件中控制)
String text = "我是text,请尽情地调试我吧!";
a) 设置字体:
//1. 获取字体文件
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/xingkai.ttf");
tvTest1.setText(text);
tvTest1.setTypeface(typeface, Typeface.BOLD);//第二个参数可选
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EbuAKiUi-1599793918372)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1595323090408.png)]
b) 大小 (size):
//ypedValue.COMPLEX_UNIT_PX : Pixels
//TypedValue.COMPLEX_UNIT_SP : Scaled Pixels
//TypedValue.COMPLEX_UNIT_DIP : Device Independent Pixels
tvTest1.setTextSize(18.0f);//默认单位 sp
tvTest1.setTextSize(TypedValue.COMPLEX_UNIT_PX,18.0f);//18piex
c) 下划线,删除线:
//delete line
tvTest2.setText(text);
tvTest2.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
//under line
tvTest3.setText(text);
tvTest3.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);
d) 斜体,粗体:
tvTest4.setText(text);
//italic
tvTest4.setTypeface(null, Typeface.ITALIC);
// bold
//方法一:
tvTest4.getPaint().setFlags(Paint.FAKE_BOLD_TEXT_FLAG);
//方法二:
tvTest4.getPaint().setFakeBoldText(true);
//方法三:
tvTest4.setTypeface(null, Typeface.BOLD);
//同时设置:
tvTest4.setTypeface(null, Typeface.BOLD_ITALIC);
e) 颜色:
tvTest5.setText(text);
//方法一:
tvTest5.setTextColor(Color.RED);
//方法二:
tvTest5.setTextColor(Color.argb(255,255,0,0));
//方法三:
tvTest5.setTextColor(Color.parseColor("#ff0000"));
//方法四: <color name="colorRed">#ff0000</color>
tvTest5.setTextColor(getResources().getColor(R.color.colorRed));
f) 局部控制:
//set part style
//control by the index
SpannableString msp = new SpannableString(text);
msp.setSpan(new TypefaceSpan("serif"),0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//'serif' 字体
msp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 2, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗斜体
msp.setSpan(new UnderlineSpan(), 8, 11, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//下划线
msp.setSpan(new StrikethroughSpan(), 11, 13, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//删除线
msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 13, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //设置前景色为洋红色
msp.setSpan(new URLSpan("http://www.baidu.com"), 13, 14, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //附加超链接
tvTest7.setText(msp);
tvTest7.setMovementMethod(LinkMovementMethod.getInstance());//required when add some superLinks
总效果图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zKoeaZQl-1599793918375)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1595323824115.png)]
二. 走马灯效果
1. 调用系统设置(有长度要求)
a) 布局文件:(后四个属性必选)
<TextView
android:id="@+id/tvLamp"
android:layout_width="match_parent"
android:layout_height="80dp"
android:gravity="center_vertical"
android:textSize="@dimen/text_size_25"
android:focusable="true"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever" />
b) java 文件中:
tvLamp = findViewById(R.id.tvLamp);
tvLamp.setSelected(true);