Вопрос об изменении альфа-значения указанной области растрового изображения в Android - PullRequest
0 голосов
/ 15 сентября 2011

У меня проблемы с установкой альфа-значения пути области, нарисованного на растровом изображении, с использованием 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). Что в этом плохого ? Заранее спасибо.

1 Ответ

0 голосов
/ 01 октября 2011

Я пробую это на обычной Java и не получаю ошибок!вероятно, вам следует попробовать отладить значение индекса.Выведите значение индекса и проверьте или просто попробуйте

Color.alpha(index)

http://developer.android.com/reference/android/graphics/Color.html#alpha(int)

...