如何在触摸android上取消模糊图像的方形部分

How to unBlur square portion of Blurry image on touch android

提问人:Rucha Bhatt Joshi 提问时间:6/6/2017 最后编辑:piet.tRucha Bhatt Joshi 更新时间:6/22/2017 访问量:1318

问:

我想做什么:

在模糊图像的鼠标悬停上时,它会以方形显示相同的图像,如下图所示。(图像完全模糊,鼠标悬停时取消模糊图像以方形显示)

我做了什么:

我使用PorterDuff.Mode使用以下代码(链接)设置模糊图像。在触摸屏幕时,鼠标指针转换为正方形,图像显示不模糊。


编辑:

问题:

现在图片不模糊,但我在模糊的图像上找不到适当的模糊效果,并且不模糊图像也不清晰,触摸时无法正常工作。

我的代码:

使用自定义视图和以下方法,我能够模糊和取消模糊图像,但仍然对输出不完全满意。

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

有没有其他方法可以实现这一目标?

enter image description here

Android 画布 android-imageview ondraw

评论

0赞 Oleksandr 6/8/2017
目前尚不清楚问题出在哪里......
0赞 Rucha Bhatt Joshi 6/8/2017
@Alexandr首先,你可以看到猫的模糊图像,但它不是很模糊,所以我需要更模糊它,所以没有人可以识别图像,当我们触摸图像时,它只在触摸部分显示清晰的图像。
0赞 Rucha Bhatt Joshi 6/8/2017
@Alexandr这里清晰的图片也不是很清晰,当我们触摸屏幕时,触摸必须绘制矩形,并限制在x轴上移动。它只能上下移动,而不是左右移动。
0赞 Oleksandr 6/12/2017
你试过我的解决方案吗?
0赞 Rucha Bhatt Joshi 6/12/2017
嗨,@Alexandr我被困在其他工作中,我会在尝试此解决方案后回复您,谢谢:)

答:

1赞 Oleksandr 6/8/2017 #1

您需要以不同的方式实现它。

您需要两张图片(而不是一张):

  1. 模糊的那个。将始终绘制为背景(或在下面的视图中)。在此处阅读如何模糊图像。

  2. 正常的。这个应该用方形蒙版画在模糊的上面。检查这个答案

更多详情:

它可以用同样的方式完成,我在这个答案中解释过,但用 Xfermode 而不是 .Mode.DST_INPorterDuff.Mode.CLEAR

希望这对你有所帮助。