了解具体内容见: http://blog.csdn.net/wingichoy/article/details/50534175
1、设置view的硬件加速。
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
2、绘制对象需是两个bitmap
3、两个bitmap需是透明背景。(bitmap.config = RGB.8888)
仅仅是个人记录,另外贴一段实现的代码,简单粗俗。
Paint targetPaint;
void init(){
//设置硬件加速
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
targetPaint = new Paint();
targetPaint.setStyle(Paint.Style.FILL);
}
//制作dstbitmap 注意点 argb_8888
Bitmap makeDstBitmap(int w,int h){
Bitmap bitmap = Bitmap.createBitmap(w,h, Bitmap.Config.ARGB_8888);
Canvas c= new Canvas(bitmap);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.RED);
c.drawOval(new RectF(0f, 0f, 35f, 35f), paint);
return bitmap;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawBitmap(makeDstBitmap(35, 35), 0, 0, targetPaint);
targetPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP));
canvas.drawBitmap(makeSrcBitmap(35, 35), 0, 0, targetPaint);
}