use*_*309 1 android bitmap ondraw
我正在尝试绘制到Bitmap,这样我就可以将自定义视图放在imageView中.onDraw方法中的代码是:
public void onDraw(Canvas canvas) {
Bitmap drawGraph = Bitmap.createBitmap(canvas.getWidth(),canvas.getHeight(),Bitmap.Config.ARGB_8888);
canvas.setBitmap(drawGraph);
canvas.drawBitmap(drawGraph, 0, 0, bgPaint);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我尝试以这种方式使用位图,我只是得到一个黑屏.我知道如果我不尝试绘制位图,我的代码的其余部分就会显示.
如果我注释掉这条线
canvas.setBitmap(drawGraph);
Run Code Online (Sandbox Code Playgroud)
然后一切都很完美,所以这是问题,但我不知道为什么.
我哪里错了?
原来我必须创建第二个画布.我的工作代码仅适用于可能需要它的人:
public void onDraw(Canvas canvas) {
Canvas singleUseCanvas = new Canvas();
drawGraph = Bitmap.createBitmap(canvas.getWidth(),canvas.getHeight(),Bitmap.Config.ARGB_8888);
singleUseCanvas.setBitmap(drawGraph);
canvas.drawBitmap(drawGraph, 100, 100, bgPaint);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7245 次 |
| 最近记录: |