Swa*_*nil 5 android gradient android-gui android-canvas geometric-arc
我想使用渐变填充使用画布绘制弧.怎么能实现这个?
Qui*_*don 10
嘿,我从这里偷走了这个:在Android中用SweepGradient画一个圆弧
但它工作正常,我使用的是LinearGradient.
Shader gradient = new SweepGradient (0,getMeasuredHeight()/2, Color.RED, Color.WHITE);
lightRed.setShader(gradient);
canvas.drawArc(rectf, -90, 360, false, lightRed);
Run Code Online (Sandbox Code Playgroud)
在我的事业中,我不得不画这样的人:
也许你也是。
所以,让我们想想!Sweep Gradient 是如何工作的?如果你通过这个绘制矩形:
private val colors = intArrayOf(ContextCompat.getColor(context, R.color.progress_from_color),
ContextCompat.getColor(context, R.color.progress_to_color))
private var positions = floatArrayOf(0.0f, 1.0f)
private var sweepGradient : SweepGradient? = null
sweepGradient = SweepGradient(w / 2F,h / 2F,colors, positions)
Run Code Online (Sandbox Code Playgroud)
将会:
所以想法是旋转它!
sweepGradient.apply {
val rotate = 270f
val gradientMatrix = Matrix()
gradientMatrix.preRotate(rotate, mWidth / 2F, mHeight / 2F)
setLocalMatrix(gradientMatrix)
}
Run Code Online (Sandbox Code Playgroud)
最后我们可以绘制弧线:
mPaint.shader = gradient
canvas.drawArc(rectF, startAngle, finishedSweepAngle, false, mPaint)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8643 次 |
最近记录: |