(Canvas canvas, IRect target, IRect screen, float dpi)
| 201 | |
| 202 | |
| 203 | public void drawAlpha(Canvas canvas, IRect target, IRect screen, float dpi) { |
| 204 | try (var src = new Bitmap(); |
| 205 | var dst = new Bitmap();) |
| 206 | { |
| 207 | var srcInfo = ImageInfo.makeS32((int) (target.getWidth() * dpi), (int) (target.getHeight() / 2 * dpi), ColorAlphaType.UNPREMUL); |
| 208 | src.allocPixels(srcInfo); |
| 209 | int len = (int) (target.getWidth() / 2 * dpi); |
| 210 | for (int x = 0; x < len; ++x) { |
| 211 | int alpha = (int) (255f * x / len); |
| 212 | int color = (alpha << 24) | (alpha << 16) | (0 << 8) | (255 - alpha); |
| 213 | src.erase(color, IRect.makeXYWH(x, 0, 1, (int) (target.getHeight() / 2 * dpi))); |
| 214 | } |
| 215 | try (var image = Image.makeRasterFromBitmap(src.setImmutable());) { |
| 216 | canvas.drawImageRect(image, Rect.makeXYWH(target.getLeft(), target.getTop(), target.getWidth(), target.getHeight() / 2)); |
| 217 | } |
| 218 | |
| 219 | if (src.extractAlpha(dst)) { |
| 220 | try (var image = Image.makeRasterFromBitmap(dst.setImmutable());) { |
| 221 | canvas.drawImageRect(image, Rect.makeXYWH(target.getLeft(), target.getTop() + target.getHeight() / 2, target.getWidth(), target.getHeight() / 2)); |
| 222 | } |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | try(var stroke = new Paint().setColor(0xFFE5E5E5).setMode(PaintMode.STROKE).setStrokeWidth(1);) { |
| 227 | canvas.drawRect(target.toRect(), stroke); |
| 228 | } |
| 229 | } |
| 230 | |
| 231 | public void drawErase(Canvas canvas, IRect target, IRect screen, float dpi) { |
| 232 | var w = target.getWidth() / 2; |
no test coverage detected