重写TextView给文字描边
来源:互联网 发布:mac虚拟机哪个好 编辑:程序博客网 时间:2024/05/16 07:05
给文字描边的一个简单实现原理就是先写一个大的文字,再写一个小的文字贴在大的上面就可以实现文字描边的原理,下面就是重写TextView的一个简单类,直接复制创建就可以拿来使用了,在xml声明即可;
public class StrokeTextView extends TextView { private TextView borderText = null;///用于描边的TextView public StrokeTextView(Context context) { super(context); borderText = new TextView(context); init(); } public StrokeTextView(Context context, AttributeSet attrs) { super(context, attrs); borderText = new TextView(context,attrs); init(); } public StrokeTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); borderText = new TextView(context,attrs,defStyle); init(); } public void init(){ TextPaint tp1 = borderText.getPaint(); tp1.setStrokeWidth(4); //设置描边宽度 tp1.setStyle(Paint.Style.STROKE); //对文字只描边 borderText.setTextColor(getResources().getColor(R.color.red)); //设置描边颜色 borderText.setGravity(getGravity()); } @Override public void setLayoutParams (ViewGroup.LayoutParams params){ super.setLayoutParams(params); borderText.setLayoutParams(params); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { CharSequence tt = borderText.getText(); //两个TextView上的文字必须一致 if(tt== null || !tt.equals(this.getText())){ borderText.setText(getText()); this.postInvalidate(); } super.onMeasure(widthMeasureSpec, heightMeasureSpec); borderText.measure(widthMeasureSpec, heightMeasureSpec); } protected void onLayout (boolean changed, int left, int top, int right, int bottom){ super.onLayout(changed, left, top, right, bottom); borderText.layout(left, top, right, bottom); } @Override protected void onDraw(Canvas canvas) { borderText.draw(canvas); super.onDraw(canvas); } //设置描边颜色,比如(getResources().getColor(R.color.red)) public void setBianColor(int is){ borderText.setTextColor(is); }}
在xml中声明:
<你工程的包名.StrokeTextView
android:id="@+id/phone_num_txt"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="left|center"
android:textColor="#ffffff"
android:textSize="20sp" />
0 0
- 重写TextView给文字描边
- TextView 文字描边
- android给textview中的文字加链接
- 给TextView的文字添加下划线
- 给TextView的文字添加下划线
- 给textview设置文字旁边的图片
- Textview实现文字轮廓描边效果
- Android重写TextView实现文字跑马灯效果
- 给textview文字添加投影,另外让textview文字居中显示
- Android中用Spannable在TextView中给文字加上边框
- 给一个TextView控件中的文字显示不同的颜色
- android 给textview部分文字设置点击事件
- AndroidTips(1):给TextView文字添加阴影效果
- 给TextView中的部分文字变色和添加点击
- Android中用Spannable在TextView中给文字加上边框
- Android中TextView给指定的文字染色
- Android中用Spannable在TextView中给文字加上边框
- TextView如何给其中的某一段文字添加颜色?
- [applicationContext.xml] cannot be opened because it does not exist错误
- Auto Fix TextView
- Linux系统编程——进程调度浅析
- grep,egrep和fgrep的区别
- javascript中的ajax对象(一)
- 重写TextView给文字描边
- 分布式文件系统FastDFS原理介绍
- linux shell 导出mongodb 数据库 & 导出 mysql数据库
- Memcached常用命令及使用说明
- windows使用glog
- 关于ASP.NET控件和HTML控件的区别
- Qt使用ActiveX控件
- Spring自动类型转换/集合属性注入
- Bootstrap3多级导航菜单