重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
思路:向四个方向移动一个像素绘制一个重叠效果,在绘制正常文本,底部的文本就相当于以阴影效果;
创新互联公司网络公司拥有十年的成都网站开发建设经验,上1000+客户的共同信赖。提供成都网站设计、网站建设、网站开发、网站定制、买友情链接、建网站、网站搭建、自适应网站建设、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
代码如下:
import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.util.AttributeSet; import android.widget.TextView; public class ShadowTextView extends TextView{ public ShadowTextView(Context context, AttributeSet attrs) { super(context, attrs); } protected void onDraw(Canvas canvas) { //先绘制一个边框在调用父类的onDraw()方法,绘制正常文本 drawText(canvas); super.onDraw(canvas); } private void drawText(Canvas canvas) { //1.获取画笔对象,这里如果不用父类自己new的话要注意设置字体的大小,不然会使用默认大小会,字会很小 Paint paint = getPaint(); //2.获取文本 String text = String.valueOf(getText()); //3.定位字体位置 //第一行左边距 float startX = getLayout().getLineLeft(0); //第一行文字的底部边距 float startY = 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); } }