Android――带文字阴影效果的TextView
16lz
2021-01-25
思路:向四个方向移动一个像素绘制一个重叠效果,在绘制正常文本,底部的文本就相当于以阴影效果;
代码如下:
importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Paint;importandroid.util.AttributeSet;importandroid.widget.TextView;publicclassShadowTextViewextendsTextView{publicShadowTextView(Contextcontext,AttributeSetattrs){super(context,attrs);}protectedvoidonDraw(Canvascanvas){//先绘制一个边框在调用父类的onDraw()方法,绘制正常文本drawText(canvas);super.onDraw(canvas);}privatevoiddrawText(Canvascanvas){//1.获取画笔对象,这里如果不用父类自己new的话要注意设置字体的大小,不然会使用默认大小会,字会很小Paintpaint=getPaint();//2.获取文本Stringtext=String.valueOf(getText());//3.定位字体位置//第一行左边距floatstartX=getLayout().getLineLeft(0);//第一行文字的底部边距floatstartY=getBaseline();//分别向左,向上,向下,向右一个像素绘制文本形成重叠效果paint.setColor(getResources().getColor(R.color.textShadowColor));canvas.drawText(text,startX+1,startY,paint);canvas.drawText(text,startX,startY-1,paint);canvas.drawText(text,startX,startY+1,paint);canvas.drawText(text,startX-1,startY,paint);}}
更多相关文章
- 为什么要学习 Markdown?究竟有什么用?
- Android经典例子收藏笔记1
- Hello Android(安卓)- Bitmap转换为黑白的灰度图和加圆角效果
- Android(安卓)Bitmap 缩放 旋转 水印 裁剪操作
- Android(安卓)Activity加载Fragment的一般简易方法
- Android下实现tab页个人比较推崇的方法
- 为Activity之间跳转添加动画
- Android(安卓)RecyclerView —— 基本使用
- Android(安卓)UI设计--新闻或信息条数的实现