android canvas 透明度
时间: 2023-08-21 09:04:49 浏览: 288
在 Android 的 Canvas 中,可以通过设置 Paint 对象的透明度来控制画笔或填充颜色的透明度。具体来说,可以通过以下两种方式来设置 Paint 对象的透明度:
1. 使用 `setAlpha(int alpha)` 方法,其中 `alpha` 的取值范围是 0-255,表示透明度从完全透明到完全不透明的程度。例如,设置 `alpha` 为 128 表示透明度为半透明状态。
2. 使用 `setARGB(int a, int r, int g, int b)` 方法,其中 `a` 参数表示透明度,取值范围是 0-255,表示透明度从完全透明到完全不透明的程度。例如,设置 `a` 为 128 表示透明度为半透明状态。
需要注意的是,设置 Paint 对象的透明度只会影响该 Paint 对象后续绘制的内容,而不会影响之前已经绘制的内容。如果需要整个 Canvas 的透明度都发生变化,可以使用 `Canvas.saveLayerAlpha()` 方法创建一个透明度不为 255 的图层,然后在该图层上进行绘制即可。
相关问题
android canvas 画镂空矩形框
在Android的Canvas上画一个镂空矩形框,通常需要使用两个步骤:一是先画一个填充颜色的矩形,二是再在其内部画一个透明(或颜色透明)的矩形,形成镂空效果。以下是一个简单的例子:
```java
// 定义绘图资源
BitmapShader shader = new BitmapShader(Bitmap.createBitmap(rectWidth, rectHeight, Bitmap.Config.ARGB_8888), Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
// 创建Paint对象并设置属性
Paint paint = new Paint();
paint.setShader(shader);
paint.setColor(Color.TRANSPARENT); // 或者设置一个接近透明的颜色如Color.argb(0, 0, 0, 10); (透明度很低)
// 获取Canvas对象
Canvas canvas = yourImageView.getHolder().getSurface().lockCanvas();
try {
// 先画一个背景色的矩形
canvas.drawRect(0, 0, rectWidth, rectHeight, paint);
// 然后再画一个镂空矩形,使用全黑作为填充色(为了视觉清晰,也可以用白色)
paint.setColor(Color.BLACK);
canvas.drawRect(rectOffsetX, rectOffsetY, rectWidth - rectOffsetX, rectHeight - rectOffsetY, paint);
} finally {
// 释放Canvas
yourImageView.getHolder().getSurface().unlockCanvasAndPost(canvas);
}
```
这里的`rectWidth`, `rectHeight`, `rectOffsetX`, `rectOffsetY`是矩形的实际尺寸和镂空部分的偏移量,可以根据需求调整。
阅读全文