java利用Android的surfaceView
当我点击按钮时,我想在surfaceView上画黑色,但是,似乎我的代码弄乱了什么,它总是白色的,我已经测试了按钮,它工作了:
SurfaceView surfaceView;
SurfaceHolder holder;
Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
surfaceView.getHolder().addCallback(this);
ImageButton paintInBlack;
paintInBlack = (ImageButton) findViewById(R.id.button1);
paintInBlack .setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d( "test", "test" );
Canvas canvas = new Canvas(mBitmap);
Paint blackPaint = new Paint();
blackPaint.setColor(Color.BLACK);
blackPaint.setStyle(Paint.Style.FILL);
canvas.drawPaint(blackPaint);
canvas = holder.lockCanvas();
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
holder.unlockCanvasAndPost(canvas);
}
我哪里做错了?谢谢大家!
# 1 楼答案
或
https://www.dev2qa.com/android-surfaceview-drawing-example/
# 2 楼答案
使用以下示例实现您的目标:
1)主要活动。类别:
2)主要活动。xml:
3)结果:
# 3 楼答案
在lockCanvas()之后绘制