自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 资源 (1)
  • 收藏
  • 关注

原创 自定义View学习之锯齿波纹效果

工作太久都忘记了学习,落下了很多基础而又实用的东西,尤其在自定义View这块,每每提及都惶恐不已,在我家小棉袄的鞭策之下,痛定思痛,拿起手中之笔,开启了我的学习之旅。在网上看到一篇自定义View的文章,以此为基准来学习了自定义View中结合Path和drawArc来实现锯齿波纹效果。 先上一张效果图 看图先来分析下整个View的组成部分,其实很简单 - 中间是一个矩阵 - 锯齿状的两侧可以

2017-09-01 14:40:36 370

原创 自定义View学习之验证码

看了很多学习自定义的文章和各位大神的例子,综合起来写了一个验证码控件来练手。 如果你对自定义控件还不够了解那么你可以先看鸿洋的这篇文章来学习基本的知识。 先来一张效果图1.先自定义两个属性用来设置view的字体大小和验证码的个数。 <declare-styleable name="VerificationCodeView"> <attr name="textSize"

2017-09-01 09:48:57 260

Android自定义View之验证码

for (int i = 1; i <= mTextCount; i++) { int offsetDegree = mRandom.nextInt(15); // 这里只会产生0和1,如果是1那么正旋转正角度,否则旋转负角度 offsetDegree = mRandom.nextInt(2) == 1 ? offsetDegree : -offsetDegree; canvas.save(); canvas.rotate(offsetDegree, mWidth / 2, mHeight / 2); // 给画笔设置随机颜色 mTextPaint.setARGB(255, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20); canvas.drawText(String.valueOf(mText.charAt(i - 1)), (i - 1) * charLength * 1.6f + 30, mHeight * 2 / 3f, mTextPaint); canvas.restore(); } // 产生干扰效果1 -- 干扰点 for (PointF pointF : mPoints) { mPointPaint.setARGB(255, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20); canvas.drawPoint(pointF.x, pointF.y, mPointPaint); } // 产生干扰效果2 -- 干扰线 for (Path path : mPaths) { mPathPaint.setARGB(255, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20, mRandom.nextInt(200) + 20); canvas.drawPath(path, mPathPaint); }

2017-09-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除