Android -- TextView(一)字体样式、走马灯效果

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);

2. 自定义(无长度要求,横向,纵向)

Demo 跳转:Android – Demo(一) TextView 自定义走马灯效果(横向,纵向)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值