Java 更改绘制的alpha将更改整个绘制视图的alpha
我正在处理一个绘制应用程序,当我试图通过mpain.setAlpha((int)(255-opaciyBrush*2.53f))更改绘制的alpha值时; 其中opacitybrush是从搜索栏获取值的整数。 是的,我每次都在搜索栏的onStopTrackingTouch上初始化PaintingView类。 所以问题是,当我试图更改alpha的值时,它会更改画布上先前绘制的线的值。(即更改整个绘制视图的值) 我想解决这个问题,我的代码是Java 更改绘制的alpha将更改整个绘制视图的alpha,java,android,Java,Android,我正在处理一个绘制应用程序,当我试图通过mpain.setAlpha((int)(255-opaciyBrush*2.53f))更改绘制的alpha值时; 其中opacitybrush是从搜索栏获取值的整数。 是的,我每次都在搜索栏的onStopTrackingTouch上初始化PaintingView类。 所以问题是,当我试图更改alpha的值时,它会更改画布上先前绘制的线的值。(即更改整个绘制视图的值) 我想解决这个问题,我的代码是 @SuppressLint("NewApi")
@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部分。请停止标记您的问题以引起版主的注意,除非您想冒问题被关闭而不是被回答的风险。“它没有得到答案”不是标记的有效理由。如果这种情况继续下去,你可能会完全失去提问的特权。好吧,我的错……但我还没有得到回答