rperryng..
12
解决方案是创建一个辅助画布和位图来绘制.我的自定义视图的onSizeChanged()方法看起来像
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
bitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
bitmap.eraseColor(Color.TRANSPARENT);
temp = new Canvas(bitmap);
}
和onDrawMethod看起来像
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
temp.drawColor(Color.argb(80, 0, 0, 0));
temp.drawCircle(centerPosX, centerPosY, 200, transparentPaint);
canvas.drawBitmap(bitmap, 0, 0, null);
}
其中transparentPaint在onstructor中声明为
transparentPaint = new Paint();
transparentPaint.setColor(getResources().getColor(android.R.color.transparent));
transparentPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
transparentPaint.setAntiAlias(true);