android canvas 局部透明,Android Canvas清晰透明

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值