最近有需求说要开发一个新模块,再模块的入口 用动画 提醒用户。模仿的动画效果 如下:
经过百度,发现Android 这类的动画很少,通过度娘知道可以通过 LinearGradient 线性渲染 来实现。下面 来看代码
//创建 LinearGradient 对象
mLinearGradient = new LinearGradient(0, 0, 50, 50, new int[]{ 0x22ffffff,
0xffffffff, 0x22ffffff}, null, Shader.TileMode.CLAMP);
//画 要显示的文字 或者 图片
canvas.drawText(getText().toString(), 0, Math.abs(rect1.height() + 10), mShaderPaint);
//设置 移动 距离
mMatrix.setTranslate(mTranslate, mTranslate);
// 设置重绘时间
postInvalidateDelayed(50);
上面的代码主要是LinearGradient 类,
/**
* x0:渲染起点的X坐标
* y0:渲染起点的Y坐标
* x1:渲染终点的X坐标
* y1:渲染终点的Y坐标
* colors:渲染的颜色集合。
* positions:渲染颜色所占的比例,如果传null,则均匀渲染.
* tile : 拉伸模式,和BitmaopShaper类似。
*/
//mLinearGradient = new LinearGradient(0,mBitmap.getHeight(),mBitmap.getWidth(),mBitmap.getHeight(),new
// int[]{Color.RED,Color.BLUE,Color.GRAY,Color.GREEN},null,Shader.TileMode.MIRROR);
下面是 android 实现 的效果
如果有修改 需要可以私信 ,或者加V: A18125287959
下面是下载链接