Замедление наводнения - PullRequest
0 голосов
/ 07 ноября 2018

Я использую этот код для окраски пробелов в изображении

    public void floodFill(Bitmap bitmap, Point point, int i, int j) {
    int k = bitmap.getWidth();
    int l = bitmap.getHeight();
    if (i != j) {
        LinkedList linkedlist = new LinkedList();
        do {
            int i1 = point.x;
            int j1;
            j1 = point.y;
            while (i1 > 0 && !isBlack(bitmap.getPixel(i1 - 1, j1),j)) {
                i1--;
            }
            boolean flag = false;
            boolean flag1 = false;
            while (i1 < k && !isBlack(bitmap.getPixel(i1, j1), j)) {
                bitmap.setPixel(i1, j1, j);

                if (!flag && j1 > 0 && !isBlack(bitmap.getPixel(i1, j1 - 1), j)) {
                    linkedlist.add(new Point(i1, j1 - 1));
                    flag = true;
                } else if (flag && j1 > 0 && isBlack(bitmap.getPixel(i1, j1 - 1), j)) {
                    flag = false;
                }

                if (!flag1 && j1 < l - 1 && !isBlack(bitmap.getPixel(i1, j1 + 1), j)) {
                    linkedlist.add(new Point(i1, j1 + 1));
                    flag1 = true;
                } else if (flag1 && j1 < l - 1 && isBlack(bitmap.getPixel(i1, j1 + 1), j)) {
                    flag1 = false;
                }
                i1++;
            }

            point = (Point) linkedlist.poll();
        } while (point != null);
    }
}
private boolean isBlack(int i, int j) {
    while (Color.red(i) == Color.green(i) &&
            Color.green(i) == Color.blue(i) &&
            Color.red(i) < 100 || i == j) {
        return true;
    }
    return false;
}

Итак, раскраска идет очень быстро, но мне нужна анимация заливки или, по крайней мере, немного замедление этого процесса, чтобы иметь возможность увидеть, как какое-то изображение становится цветным. Есть ли способ сделать это в Android Studio?

...