我无法使用SurfaceView设置位图上绘制的区域路径的Alpha值。
我正在创建我的位图并用黑色擦除(并且255为alpha)
bitmap = Bitmap.createBitmap(480, 724, Bitmap.Config.ARGB_8888);
bitmap.eraseColor(0xFF000000);
Canvas canvas = new Canvas(bitmap);
接下来,在我的onDraw方法中,我使用自己的alpha绘制位图路径,白色为笔画,黑色为填充色,1为alpha值:
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)作为alpha值, 但相反,我仍然有255(0xFF)。这有什么问题?提前谢谢。
答案 0 :(得分:0)
我在普通的Java中尝试这个,并且没有错误!可能你应该尝试调试index的值。输出索引和检查的值,或者只是尝试
Color.alpha(index)
http://developer.android.com/reference/android/graphics/Color.html#alpha(int)