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