canvas教程

优秀范文十篇 www.fanwen99.cn(17)

字号+ 作者:H5之家 来源:H5之家 2017-07-21 14:05 我要评论( )

mColors = new int[] { 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF,0xFF00FFFF, 0xFF00FF00, 0xFFFFFF00, 0xFFFF0000 }; Shader s = new SweepGradient(0, 0, mColors, null); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG)

mColors = new int[] { 0xFFFF0000, 0xFFFF00FF, 0xFF0000FF, 0xFF00FFFF, 0xFF00FF00, 0xFFFFFF00, 0xFFFF0000 }; Shader s = new SweepGradient(0, 0, mColors, null); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

mPaint.setShader(s);

mPaint.setStyle(Paint.Style.STROKE);

mPaint.setStrokeWidth(32);

mCenterPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mCenterPaint.setColor(color);

mCenterPaint.setStrokeWidth(5);

}

private boolean mTrackingCenter;

private boolean mHighlightCenter;

@Override

protected void onDraw(Canvas canvas)

{

float r = CENTER_X - mPaint.getStrokeWidth() * 0.5f; canvas.translate(CENTER_X, CENTER_X);

canvas.drawOval(new RectF(-r, -r, r, r), mPaint);

canvas.drawCircle(0, 0, CENTER_RADIUS, mCenterPaint); if (mTrackingCenter)

{

int c = mCenterPaint.getColor();

mCenterPaint.setStyle(Paint.Style.STROKE);

if (mHighlightCenter)

{

mCenterPaint.setAlpha(0xFF);

}

else

{

mCenterPaint.setAlpha(0x80);

软件开发毕业设计范文}

canvas.drawCircle(0, 0, CENTER_RADIUS

+ mCenterPaint.getStrokeWidth(),

mCenterPaint);

mCenterPaint.setStyle(Paint.Style.FILL);

mCenterPaint.setColor(c);

}

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

{

setMeasuredDimension(CENTER_X * 2, CENTER_Y * 2); }

private static final int CENTER_X = 100;

private static final int CENTER_Y = 100;

private static final int CENTER_RADIUS = 32;

private int ave(int s, int d, float p)

{

return s + java.lang.Math.round(p * (d - s));

}

private int interpColor(int colors[], float unit)

{

if (unit = 1)

{

return colors[colors.length - 1];

}

float p = unit * (colors.length - 1);

int i = (int) p;

p -= i;

// now p is just the fractional part [0...1) and i is the index

int c0 = colors[i];

int c1 = colors[i + 1];

int a = ave(Color.alpha(c0), Color.alpha(c1), p);

int r = ave(Color.red(c0), Color.red(c1), p);

int g = ave(Color.green(c0), Color.green(c1), p); int b = ave(Color.blue(c0), Color.blue(c1), p); return Color.argb(a, r, g, b);

}

private static final float PI = 3.1415926f;

@Override

public boolean onTouchEvent(MotionEvent event)

{

float x = event.getX() - CENTER_X;

float y = event.getY() - CENTER_Y;

boolean inCenter = java.lang.Math.sqrt(x * x + y * y)

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 设计师毕业实习报告范文3篇

    设计师毕业实习报告范文3篇

    2017-03-27 15:00

  • PS抠图神器:KnockOut 2.0汉化版下载及教程

    PS抠图神器:KnockOut 2.0汉化版下载及教程

    2017-02-15 18:01

  • 动漫专业大学生实习报告范文

    动漫专业大学生实习报告范文

    2016-07-13 13:00

  • 体验未来:10个会让你惊叹不已的HTML5画布(canvas)技术应用演示

    体验未来:10个会让你惊叹不已的HTML5画布(canvas)技术应用演示

    2016-05-08 13:00

网友点评
s