在Layers例程中 主要使用了
private static final int LAYER_FLAGS = //Canvas.MATRIX_SAVE_FLAG |
Canvas.CLIP_SAVE_FLAG |
//Canvas.HAS_ALPHA_LAYER_SAVE_FLAG
Canvas.FULL_COLOR_LAYER_SAVE_FLAG |
Canvas.CLIP_TO_LAYER_SAVE_FLAG;
这个参数的不同组合 只是没有具体高清有啥具体的效果,只是懂得 最底层可以不显示
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
canvas.translate(10, 10);
canvas.saveLayerAlpha(0, 0, 200, 200, 0x66, LAYER_FLAGS);
mPaint.setColor(Color.RED);
canvas.drawCircle(75, 75, 75, mPaint);
mPaint.setColor(Color.BLUE);
canvas.drawCircle(125, 125, 75, mPaint);
canvas.restore();
private static final int LAYER_FLAGS = //Canvas.MATRIX_SAVE_FLAG |
Canvas.CLIP_SAVE_FLAG |
//Canvas.HAS_ALPHA_LAYER_SAVE_FLAG
Canvas.FULL_COLOR_LAYER_SAVE_FLAG |
Canvas.CLIP_TO_LAYER_SAVE_FLAG;
这个参数的不同组合 只是没有具体高清有啥具体的效果,只是懂得 最底层可以不显示
@Override protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
canvas.translate(10, 10);
canvas.saveLayerAlpha(0, 0, 200, 200, 0x66, LAYER_FLAGS);
mPaint.setColor(Color.RED);
canvas.drawCircle(75, 75, 75, mPaint);
mPaint.setColor(Color.BLUE);
canvas.drawCircle(125, 125, 75, mPaint);
canvas.restore();
本文探讨了在Android开发中使用Canvas进行复杂图形绘制的方法。重点介绍了如何利用saveLayerAlpha与特定的LAYER_FLAGS来实现半透明效果及图层混合,通过实例展示了不同标志位组合对绘图结果的影响。
1747

被折叠的 条评论
为什么被折叠?



