0
SurfaceViewを使用して、ビットマップに描画されたリージョンパスのアルファ値を設定する際に問題があります。Androidで指定されたビットマップ領域のアルファ値を変更する質問
私は、ビットマップを作成し、(アルファなどと255)黒の色で消してる
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)が残っています。それのどこが悪いんだい ?前もって感謝します。
が、この方法は、[リンク](http://stackoverflow.com/questions/に@Brianによって投稿前の回答に基づいています2597590/how-can-i-tell-a-closed-path-a-given-point)が、うまく動作しません。 –