图片画阴影问题
之前遇到的一个问题,一直忘记了,突然想起了,求解答
问题如下:
有一个图片资源,定义了自己的view,重写了ondraw,要实现的功能是,把这个图片draw出来,并且在右下方偏移
(10,10)像素,有一个这个图片的阴影。
遇到的问题:
1、如果直接用paint.setShadowLayer()这个函数,他阴影层会直接再把这个图片画一次,不是黑色的阴影。而直接drawRect就不会有这样的问题
2、我想到的是,在下面先画一个大小和图片一样的rect,然后再在上面盖上图片,但是这样又会有问题,因为图片可能有透明的边界,比如一个图片是48X48的,但是他实际上里面有东西的地方没这么大,这样也是不行的
如果实现这个效果吧。。。
[解决办法]
http://blog.csdn.net/hxdanya/article/details/6619877
[解决办法]
或者
//draw bitmap shadow
public Bitmap DrawShadowImg(Bitmap bitmap)
{
BlurMaskFilter blurFilter = new BlurMaskFilter(4, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);
int[] offsetXY = new int[2];
Bitmap shadowImage = bitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadow = shadowImage.copy(Bitmap.Config.ARGB_8888, true);
Canvas c = new Canvas(shadow);
c.drawBitmap(bitmap, -offsetXY[0], -offsetXY[1], null);
return shadow;
}