A* path finding getting the node neighbors Is there any way I can minimise this code.The code will get the neighbours of the current node and point the arrow to the current node

private boolean isDiagonal(int x, int y, Node node) {
    if (x == -1 &amp;&amp; y == 1) {
        node.arrow.setDrawable("bottom-right");
        return true;
    } else if (x == 1 &amp;&amp; y == 1) {
          node.arrow.setDrawable("bottom-left");
        return true;
    } else if (x == -1 &amp;&amp; y == -1) {
          node.arrow.setDrawable("top-right");
        return true;
    } else if (y == -1 &amp;&amp; x == 1) {
         node.arrow.setDrawable("top-left");
        return true;
    } 
    // Determine here if it's cross
    else if (x == -1 &amp;&amp; y == 0) {
        node.arrow.setDrawable("right");
        return true;
    } else if (x == 1 &amp;&amp; y == 0) {
        node.arrow.setDrawable("left");
        return true;
    } else if (x == 0 &amp;&amp; y == -1) {
        node.arrow.setDrawable("up");
        return true;
    } else if (y == 1 &amp;&amp; x == 0) {
        node.arrow.setDrawable("down");
        return true;
    }
    return false;
}


output
Just as I answered yesterday in BFS in a grid with wall breaking saldo in Java : define a direction and use it:

enum Direction {
    // define directions for each pair of offsets
    NORTH(-1, 0, "up"),
    NORTHEAST(-1, 1, "top-right"),
    SOUTH(1, 0, "...."),
    ...
    ;

    public final int offsetX;
    public final int offsetY;
    public final String drawableValue;

    private Direction(int offsetX, int offsetY, String drawableValue) {
        this.offsetX = offsetX;
        this.offsetY = offsetY;
        this.drawableValue = drawableValue;
    }
};

private boolean isDiagonal(int x, int y, Node node) {
    for(Direction dir : Direction.values())
        if(x == dir.offsetX &amp;&amp; y == dir.offsetY) {
           node.arrow.setDrawable(dir.drawableValue);
           return true;
        }
    return false;
}


Apart from that, the method-name is a lie: it does NOT check for diagonals only, so you should find a name which describes the actual action.

(And just because this is code-review and someone will be tempted to say: add braces to the for loop: no. This is the style I prefer, I know that other people like it in other ways. ;-))