【发布时间】:2014-10-29 23:19:14
【问题描述】:
图像透明的地方,我变黑了……
我在位图画布上用另一个图像遮罩了一个图像,它工作得很好,但是当我尝试在自定义视图的 onDraw 内进行遮罩时,它不起作用。
我尝试了所有方法,在图像蒙版、路径、其他图像、所有内容之前绘制矩形,它在应该透明的地方保持黑色。我搜索了很多其他人在使用 CLEAR 模式时遇到的问题,但没有奏效。
请帮忙!
mBGPaint = new Paint();
mBGPaint.setStyle(Paint.Style.FILL);
mBGPaint.setColor(Color.TRANSPARENT);
mRectSrc = new Rect();
mRectDst = new Rect();
mask = BitmapFactory.decodeResource(getResources(), R.drawable.big_balloon_path);
maskPaint = new Paint();
maskPaint.setFilterBitmap(true);
maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
mRectSrc.set(0, 0, mask.getWidth(),mask.getHeight() );
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mRectDst.set(0,0,this.getMeasuredWidth(),this.getMeasuredHeight());
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawRect(0, 0, this.getMeasuredWidth(), this.getMeasuredHeight(), mBGPaint);
canvas.drawBitmap(mask, mRectSrc, mRectDst, maskPaint);
【问题讨论】:
标签: android canvas view transparency