gpt4 book ai didi

android - 如何使 Canvas 绘图区域在 android 中透明?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:46:12 24 4
gpt4 key购买 nike

我想让 Canvas 区域透明,因为我想在它后面添加一个图像,以便 Canvas 操作发生在图像上方。我的 Canvas 代码在这里

public class Panel extends SurfaceView implements SurfaceHolder.Callback {

private ViewThread mThread;
private ArrayList<Element> mElements = new ArrayList<Element>();

public Panel(Context context, AttributeSet attrs) {
super(context, attrs);
getHolder().addCallback(this);
mThread = new ViewThread(this);
}


public void doDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
synchronized (mElements) {
for (Element element : mElements) {
element.doDraw(canvas);
}
}
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// TODO Auto-generated method stub
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
if (!mThread.isAlive()) {
mThread = new ViewThread(this);
mThread.setRunning(true);
mThread.start();
}
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mThread.isAlive()) {
mThread.setRunning(false);
}
}

@Override
public boolean onTouchEvent(MotionEvent event) {
synchronized (mElements) {
mElements.add(new Element(getResources(), (int) event.getX(), (int) event.getY()));
}
return super.onTouchEvent(event);
}

如何实现它,上面的任何 fragment 都会非常有帮助。谢谢

最佳答案

我得到了输出

 public Panel(Context context, AttributeSet attrs) { 
super(context, attrs);
this.setBackgroundColor(Color.TRANSPARENT);
this.setZOrderOnTop(true); //necessary
getHolder().setFormat(PixelFormat.TRANSPARENT);
getHolder().addCallback(this);
mThread = new ViewThread(this);

}

关于android - 如何使 Canvas 绘图区域在 android 中透明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703581/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com