Java 更改绘制的alpha将更改整个绘制视图的alpha

Java 更改绘制的alpha将更改整个绘制视图的alpha,java,android,Java,Android,我正在处理一个绘制应用程序,当我试图通过mpain.setAlpha((int)(255-opaciyBrush*2.53f))更改绘制的alpha值时; 其中opacitybrush是从搜索栏获取值的整数。 是的,我每次都在搜索栏的onStopTrackingTouch上初始化PaintingView类。 所以问题是,当我试图更改alpha的值时,它会更改画布上先前绘制的线的值。(即更改整个绘制视图的值) 我想解决这个问题,我的代码是 @SuppressLint("NewApi")

我正在处理一个绘制应用程序,当我试图通过mpain.setAlpha((int)(255-opaciyBrush*2.53f))更改绘制的alpha值时; 其中opacitybrush是从搜索栏获取值的整数。 是的,我每次都在搜索栏的onStopTrackingTouch上初始化PaintingView类。 所以问题是,当我试图更改alpha的值时,它会更改画布上先前绘制的线的值。(即更改整个绘制视图的值) 我想解决这个问题,我的代码是

    @SuppressLint("NewApi")
    public PaintingView(Context context) {
        super(context);
        setFocusable(true);
        setFocusableInTouchMode(true);
        this.setOnTouchListener(this);
        setDrawingCacheEnabled(true);
        onCanvasInitialization();
    }

    private void onCanvasInitialization() {

        mPaint = new Paint(Paint.DITHER_FLAG);
        mPaint.setAntiAlias(true);
        mPaint.setDither(true);
        mPaint.setFilterBitmap(true);
        mPaint.setColor(MainActivity.colorchanger);
        mCanvas = new Canvas();
        mPath = new Path();
        Paint newPaint = new Paint(mPaint);
        Container.paths.add(new Pair<Path, Paint>(mPath, newPaint));
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);

        mPaint.setStrokeWidth(widthBrush / 4 + 1);
        mPaint.setAlpha((int) (255 - opacityBrush * 2.53f));

    }
@SuppressLint(“NewApi”)
公共绘画视图(上下文){
超级(上下文);
设置聚焦(真);
setFocusableInTouchMode(真);
this.setOnTouchListener(this);
setDrawingCacheEnabled(真);
oncanvas初始化();
}
私有void oncanvas初始化(){
mPaint=新油漆(油漆抖动标志);
mPaint.setAntiAlias(true);
mPaint.setDither(true);
mPaint.setFilterBitmap(true);
mPaint.setColor(MainActivity.colorchanger);
mCanvas=新画布();
mPath=新路径();
油漆新油漆=新油漆(mPaint);
Container.path.add(新对(mPath,newPaint));
mPaint.setStyle(油漆、样式、笔划);
mPaint.setStrokeJoin(油漆.连接.圆形);
mPaint.setStrokeCap(油漆盖圆形);
mPaint.设置行程宽度(宽度刷/4+1);
mPaint.setAlpha((int)(255-opacityBrush*2.53f));
}

哪一个有效?请接受alpha部分。

请停止标记您的问题以引起版主的注意,除非您想冒问题被关闭而不是被回答的风险。“它没有得到答案”不是标记的有效理由。如果这种情况继续下去,你可能会完全失去提问的特权。好吧,我的错……但我还没有得到回答