Android画布(Canvas)之--- 滚动多彩圆环,利用Path切除一个扇形,形成一段圆弧效果
2017-06-21 09:57
615 查看
public class TestCanvasActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new LoadingView(this)); } private static class LoadingView extends View { private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private float mRotate; private Matrix mMatrix = new Matrix(); private Shader mShader; float centerX = 360; float centerY = 360; float radius = 200; float gapStartDeg = 70; float gapEndDeg = 110; private Path mPath; private RectF rect; private Paint paintRect; public LoadingView(Context context) { super(context); setFocusable(true); setFocusableInTouchMode(true); mShader = new SweepGradient(centerX, centerY, new int[] { Color.GREEN, Color.RED, Color.BLUE, Color.GREEN }, null); mPaint.setShader(mShader); mPaint.setStyle(Paint.Style.STROKE); PathEffect effect = new DashPathEffect(new float[] { 5, 8, 5, 8}, 1); mPaint.setPathEffect(effect); mPaint.setStrokeWidth(50); mPath = new Path(); mPath.moveTo(centerX, centerY); rect = new RectF(centerX - radius, centerY - radius, centerX + radius, centerY + radius); mPath.arcTo(rect, gapStartDeg, gapEndDeg - gapStartDeg, false); paintRect = new Paint(); paintRect.setColor(Color.RED); paintRect.setStyle(Paint.Style.STROKE); } @Override protected void onDraw(Canvas canvas) { Paint paint = mPaint; canvas.drawColor(Color.WHITE); mMatrix.postRotate(mRotate, centerX, centerY); mShader.setLocalMatrix(mMatrix); invalidate();
//no worry about resulting in loop, this is way to animate the view.
//you can use: postInvalidate, postInvalidateDelayed. canvas.drawRect(rect, paintRect); canvas.clipPath(mPath, Region.Op.DIFFERENCE); canvas.drawCircle(centerX, centerY, 80, paint); } } }
预览:
因为我无法回复: http://bbs.csdn.net/topics/390746097,所以发帖,希望对你有用!
相关文章推荐
- Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
- Android 超仿Path时间轴和扇形菜单的效果
- Android中图形的绘制-----自定义View(利用canvas和Path相结合)
- Android开发:canvas.drawTextOnPath()无效----Android4.03的又一个bug!!!!(关于Canvas绘制的方方面面) .
- Android编程开发之在Canvas中利用Path绘制基本图形(圆形,矩形,椭圆,三角形等)
- 利用Android模仿微信摄像圆环进度效果实例
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- 利用HTML5的画布Canvas实现刮刮卡效果
- android 给LinearLayout中添加一定数量的控件,并让着一定数量的控件从右到左移动,每隔若干秒停顿一下,最后一个view链接第一个view,然后继续移动循环往复,形成一个死循环简单动画效果
- 利用Android画圆弧canvas.drawArc()实例详解
- Android开发:ImageView上绘制旋转圆环(透明度不同的旋转圆环,利用canvas.drawArc实现)
- Android墨迹3.0特性介绍效果实现——做一个垂直滚动的Layout
- Android软件开发:在Canvas中利用Path绘制基本图形
- 利用canvas实现圆环评分效果,web开发技术用于手机端展现
- Android墨迹3.0特性介绍效果实现——做一个垂直滚动的Layout
- Android自定义控件View(实现控件的动画效果,自定义类画简略时钟,TextView中文字逐一显示,动态设置progress的圆环/扇形ProgressBar等)
- Android 利用GridView来实现一个底部标签页的效果
- Android 绘制一个Loading动画__向图片中缓慢填充颜色,从而形成动画效果
- Android 超仿Path时间轴和扇形菜单的效果
- Android播放多张图片形成一个动画效果