我想做什么:
在模糊图像的鼠标悬停上,它显示如下图所示的方形图像中的相同图像。 (图像完全模糊,鼠标悬停unblur图像显示为方形)
我做了什么:
我使用link使用以下代码(PorterDuff.Mode)设置模糊图像。触摸屏幕鼠标指针转换为方形和图像显示unblur。
修改
问题:
现在图片是不显眼的,但我无法找到适当的模糊效果,模糊的图像和unblur图像也不清楚,触摸不能正常工作。
我的代码:
使用自定义视图和以下方法,我可以模糊和取消图像,但仍然不能完全满足输出。
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(mTutorialColor);
if (mCx >= 0 && mCy >= 0) {
DisplayMetrics displayMetrics = new DisplayMetrics();
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
// canvas.drawCircle(mCx, mCy, RADIUS, mBackgroundPaint);
canvas.drawRect(mCx, mCy, mCx + width, mCy + 250, mBackgroundPaint);
}
}
private void init() {
setWillNotDraw(false);
setLayerType(LAYER_TYPE_HARDWARE, null);
mBackgroundPaint = new Paint();
mBackgroundPaint.setColor(getResources().getColor(android.R.color.transparent));
mBackgroundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
还有其他方法可以达到这个目的吗?
答案 0 :(得分:1)
您需要以不同方式实施它。
您需要两张图片(而不是一张):
模糊不清。它将始终绘制为背景(或在下面的视图中)。阅读here如何模糊图像。
正常的。应该使用方形面具在模糊的一个上绘制这个。请查看此answer。
更多细节:
可以采用相同的方式完成,我在this answer中进行了解释,但使用Mode.DST_IN
Xfermode代替PorterDuff.Mode.CLEAR
。
希望这会对你有所帮助。