2011-09-14 8 views
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)が残っています。それのどこが悪いんだい ?前もって感謝します。

+0

が、この方法は、[リンク](http://stackoverflow.com/questions/に@Brianによって投稿前の回答に基づいています2597590/how-can-i-tell-a-closed-path-a-given-point)が、うまく動作しません。 –

答えて

関連する問題