在android上浮雕一个代表图像的路径

在android上浮雕一个代表图像的路径,android,canvas,bitmap,drawing,Android,Canvas,Bitmap,Drawing,我试图在一条封闭的不规则形状的路径上绘制一幅图像。我使用了PorterDuffXfermode。我的目标是使用浮雕MaskFilter并在最终图像形状输出上创建浮雕效果。请参阅下面的代码。然而,即使是我画的这幅画看起来也很平淡 piecePicture = Bitmap.createBitmap(200, 200,Bitmap.Config.ARGB_8888); MaskFilter mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }

我试图在一条封闭的不规则形状的路径上绘制一幅图像。我使用了PorterDuffXfermode。我的目标是使用浮雕MaskFilter并在最终图像形状输出上创建浮雕效果。请参阅下面的代码。然而,即使是我画的这幅画看起来也很平淡

piecePicture = Bitmap.createBitmap(200, 200,Bitmap.Config.ARGB_8888);

MaskFilter mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 }, 0.4f, 6, 3.5f);
Canvas gfx = new Canvas(piecePicture);


Paint whitePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
whitePaint.setColor(Color.WHITE);
whitePaint.setStyle(Paint.Style.FILL_AND_STROKE);
whitePaint.setStrokeWidth(1);

// shape image has to take
mPath.addRect(10, 10, 195, 195, Direction.CCW);
gfx.drawPath(mPath, whitePaint);

Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN));
paint.setMaskFilter(mEmboss);   
// draw the image on path viewBgrnd is the bitmap    
gfx.drawBitmap(viewBgrnd, 10,10, paint);

使用PorterDuffXfermode绘制图像后,谢谢。 piecePicture必须使用带有浮雕过滤器的绘制对象在画布上重新绘制