如何在触摸android

时间:2017-06-06 14:00:32

标签: android canvas android-imageview ondraw

我想做什么:

在模糊图像的鼠标悬停上,它显示如下图所示的方形图像中的相同图像。 (图像完全模糊,鼠标悬停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));
    }

还有其他方法可以达到这个目的吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要以不同方式实施它。

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

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

  2. 正常的。应该使用方形面具在模糊的一个上绘制这个。请查看此answer

  3. 更多细节:

    可以采用相同的方式完成,我在this answer中进行了解释,但使用Mode.DST_IN Xfermode代替PorterDuff.Mode.CLEAR

    希望这会对你有所帮助。