我遇到了这个代码,它完美的运行并且执行得更快。希望这将有助于未来的读者。
public static Bitmap highlightImage(Bitmap src) {
// create new bitmap, which will be painted and becomes result image
Bitmap bmOut = Bitmap.createBitmap(src.getWidth() + 96, src.getHeight() + 96, Bitmap.Config.ARGB_8888);
// setup canvas for painting
Canvas canvas = new Canvas(bmOut);
// setup default color
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
// create a blur paint for capturing alpha
Paint ptBlur = new Paint();
ptBlur.setMaskFilter(new BlurMaskFilter(15, BlurMaskFilter.Blur.NORMAL));
int[] offsetXY = new int[2];
// capture alpha into a bitmap
Bitmap bmAlpha = src.extractAlpha(ptBlur, offsetXY);
// create a color paint
Paint ptAlphaColor = new Paint();
ptAlphaColor.setColor(0xFFFFFFFF);
// paint color for captured alpha region (bitmap)
canvas.drawBitmap(bmAlpha, offsetXY[0], offsetXY[1], ptAlphaColor);
// free memory
bmAlpha.recycle();
// paint the image source
canvas.drawBitmap(src, 0, 0, null);
// return out final image
return bmOut;
}
而不是做这个复杂的,选择时创建选择文件并改变形象,也会给高光效果有效 – AkashG 2012-07-09 12:50:41
,你只需要通过XML,而不是绘制,多数民众赞成它。 – AkashG 2012-07-09 12:51:48
是的,我同意。事情是,当为Android和iOS做同样的应用程序时,我们通常会得到iOS的选项卡图标,这是它自己的突出显示,并且不会为Android获取单独的突出显示的图标。我编写了这个代码,在Android上产生类似的效果,如iOS标签图标突出显示。 – peceps 2012-07-09 12:55:44