Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android模糊位图部分(fingure touch部分)/在触摸时使位图的特定区域模糊_Android_Bitmap_Blur - Fatal编程技术网

Android模糊位图部分(fingure touch部分)/在触摸时使位图的特定区域模糊

Android模糊位图部分(fingure touch部分)/在触摸时使位图的特定区域模糊,android,bitmap,blur,Android,Bitmap,Blur,在我的一个应用程序中,我需要使位图的部分模糊 我需要允许用户移动图形,并使位图的这一部分模糊 如何应用这个?? 如果可能的话?如果是,那怎么办 我参观过,但没有收获 我该怎么做?可能吗 我已经这样做了: mPaint.setAlpha(10); // mPaint.setStyle(Style.FILL); //mPaint.setXfermode(new PorterDuffXfermode(Mode.CLEAR)); m

在我的一个应用程序中,我需要使位图的部分模糊

我需要允许用户移动图形,并使位图的这一部分模糊

如何应用这个?? 如果可能的话?如果是,那怎么办

我参观过,但没有收获

我该怎么做?可能吗

我已经这样做了:

mPaint.setAlpha(10);
            // mPaint.setStyle(Style.FILL);
            //mPaint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
            mPaint.setMaskFilter(new BlurMaskFilter(30, BlurMaskFilter.Blur.INNER));
             paint.setStyle(Style.STROKE);
            mPaint.setAntiAlias(true);

            mPaint.setAntiAlias(true);
            mPath = new Path();
            mPath.offset(30, 30);

            paths.add(new PathPoints(mPath, color, false, strokWidth));
            mCanvas = new Canvas();
            c2 = new Canvas();

            // this.setDrawingCacheEnabled(true);
            c2.setBitmap(Transparent);


这里的想法没有那么复杂。 静态创建图像的模糊版本(可能是Renderscript?) 然后在画布上绘制原始图像。 此时,当用户触摸您在触摸区域中绘制的画布时,模糊位图的一部分。
要实现这一点,您可能需要尝试一些PorterDuff蒙版,以使其看起来更漂亮(例如使用alpha蒙版绘制模糊部分,以便更好地将其与原始图像混合).

porter duff:模糊谢谢你的帮助,但我想要触摸平滑模糊我的意思是用户触摸位图的那部分应该模糊,只有其他部分保持不变。我理解。请仔细阅读完整的回复。要做到这一点,你需要做一些工作。。。
protected void onDraw(Canvas canvas1) {
            canvas = canvas1;

            // === canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);

            canvas.drawBitmap(Transparent, 0, 0, mBitmapPaint);
            c2.drawBitmap(Bitmap2, 0, 0, mBitmapPaint);
            // canvas.drawBitmap(Transparent, 0, 0, mBitmapPaint);
            // canvas.drawBitmap(Transparent, 0, 0, null);
            // c2.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
            for (PathPoints p : paths) {

                //mPaint.setColor(p.getColor());
                mPaint.setStrokeWidth(p.getStrokWidth());
                Log.v("", "Color code : " + p.getColor());
                if (p.isTextToDraw()) {
                    canvas.drawText(p.textToDraw, p.x, p.y, mPaint);
                } else {
                    // if(isTouched)
                    // {
                    // canvas.drawPath(p.getPath(), mPaint);
                    c2.drawPath(p.getPath(), mPaint);


                }

            }
            //
            // invalidate();

        }