public static void drawHorizontalLineAlpha(int x, int y, int width, int colour, int alpha) {
		if (x < topY || x >= bottomY)
			return;
		if (y < topX) {
			width -= topX - y;
			y = topX;
		}
		if (y + width > bottomX)
			width = bottomX - y;
		int opacity = 256 - alpha;
		int r = (colour >> 16 & 0xff) * alpha;
		int g = (colour >> 8 & 0xff) * alpha;
		int b = (colour & 0xff) * alpha;
		int pointer = y + x * DrawingArea.width;
		for (int column = 0; column < width; column++) {
			int rAlpha = (pixels[pointer + column] >> 16 & 0xff) * opacity;
			int gAlpha = (pixels[pointer + column] >> 8 & 0xff) * opacity;
			int bAlpha = (pixels[pointer + column] & 0xff) * opacity;
			int packedRGB = ((r + rAlpha >> 8) << 16) + ((g + gAlpha >> 8) << 8)
					+ (b + bAlpha >> 8);
			pixels[pointer + column] = packedRGB;
		}
	}