スタイル:塗りつぶしで矢印を描くためのコードを以下に示します:
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);
そして、私が得る出力はこれです:
次に、スタイルをGradient(Style.gradientがAndroidに存在しない...)に設定して、以下に示す画像のような矢印を取得します。
どうすればいいのですか ? style.xmlにスタイルを追加しようとしましたが、アイテムをパラメーターとして受け入れるため、そこにグラデーションを追加できませんでした。
以下のコードを使用してください。
Paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR));
canvas.drawPath(arrowPath, Paint);
複数の色が必要な場合:
// 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))
onDraw()で
// Add Shader
gradientPaint.shader = LinearGradient(0f, 0f, measuredWidth.toFloat(),0f,
colors,
positions,
Shader.TileMode.CLAMP)
canvas.drawPath(path, gradientPaint)