Roh*_*n K 46 android gradient android-canvas
使用Style:Fill绘制箭头的代码如下:
paint.setColor(Color.parseColor("#bdc0dc"));
paint.setStyle(Style.FILL);
canvas.drawPath(arrowPath, paint);
paint.setColor(Color.BLACK);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(2);
canvas.drawPath(arrowPath, paint);
Run Code Online (Sandbox Code Playgroud)
我得到的输出是这样的:

现在我想做的是将样式设置为Gradient(在android中没有Style.gradient ...)以获得类似于下面给出的图像的箭头:

我该怎么做 ?我尝试在style.xml中添加样式但无法在那里添加渐变,因为它接受item作为参数..
Suj*_*jit 105
使用下面的代码..
paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR));
canvas.drawPath(arrowPath, paint);
Run Code Online (Sandbox Code Playgroud)
Hit*_*ahu 10
如果你想要不止一种颜色:
// Gradient Shade colors distribution setting uniform for now
private val positions = null //floatArrayOf(0f, 0.3f, 0.6f)
// Gradient Shade colors
private val colors = intArrayOf(
ContextCompat.getColor(context,
R.color.divider_gradient_start_color),
ContextCompat.getColor(context,
R.color.divider_gradient_center_color),
ContextCompat.getColor(context,
R.color.divider_gradient_end_color))
Run Code Online (Sandbox Code Playgroud)
在 OnDraw()
// Add Shader
gradientPaint.shader = LinearGradient(0f, 0f, measuredWidth.toFloat(),0f,
colors,
positions,
Shader.TileMode.CLAMP)
canvas.drawPath(path, gradientPaint)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27605 次 |
| 最近记录: |