【问题标题】:How to unBlur square portion of Blurry image on touch android如何在触摸android上取消模糊模糊图像的方形部分
【发布时间】:2017-06-06 14:00:31
【问题描述】:

我想做的事:

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

我做了什么:

我使用以下代码 (link) 使用 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));
    }

还有其他方法可以实现吗?

【问题讨论】:

  • 目前还不清楚是什么问题...
  • @Alexandr 首先你可以看到猫的模糊图像,但它不是很模糊,所以我需要更多地模糊它,所以没有人可以识别图像,当我们触摸图像时它只会显示清晰的图像在那个触摸部分。
  • @Alexandr 这里清晰的图片也不是很清晰,当我们触摸屏幕时,触摸必须是绘制矩形并且限制在 x 轴上移动。它只会上下移动而不是左右移动。
  • 你试过我的解决方案了吗?
  • hii @Alexandr 我正忙于其他工作,我会在尝试此解决方案后回复您,谢谢 :)

标签: android canvas android-imageview ondraw


【解决方案1】:

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

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

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

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

更多详情:

可以按照我在this answer 中解释的相同方式完成,但使用Mode.DST_IN Xfermode 而不是PorterDuff.Mode.CLEAR

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多