У меня проблемы с установкой альфа-значения пути области, нарисованного на растровом изображении, с использованием SurfaceView.
Я создаю свое растровое изображение и стираю черным цветом (и 255 как альфа) * 1003 *
bitmap = Bitmap.createBitmap(480, 724, Bitmap.Config.ARGB_8888);
bitmap.eraseColor(0xFF000000);
Canvas canvas = new Canvas(bitmap);
Далее, в моем методе onDraw я рисую путь на растровом изображении с его собственной альфой, белым цветом как обводка, черным как цвет заливки и 1 как альфа-значение:
Paint border = new Paint();
border.setStyle(Paint.Style.STROKE);
border.setStrokeWidth(1);
border.setStrokeCap(Paint.Cap.BUTT);
border.setStrokeJoin(Paint.Join.MITER);
border.setColor(Color.WHITE);
Paint inside = new Paint();
inside.setAntiAlias(false);
inside.setStyle(Paint.Style.FILL);
int alpha = 1<<24;
inside.setColor(alpha);
canvas.drawBitmap(bitmap,0,0, null);
canvas.drawPath(path, border);
canvas.drawPath(path, inside);
Наконец, в моем методе onTouchEvent я делаю это:
int index = bitmap.getPixel((int)event.getX(), (int)event.getY());
int alpha = index >>> 24;
Log.v("TAG", " Region path alpha :"+ String.valueOf(alpha));
Итак, когда я щелкаю внутри области пути, я ожидаю иметь 1 (0x01) в качестве альфа-значения,
но вместо этого у меня все еще есть 255 (0xFF). Что в этом плохого ? Заранее спасибо.