Android Canvas - 如何在不同颜色的同一个地方重绘

时间:2012-02-21 23:10:15

标签: android

我在画布上的x,y处画了一个蓝色圆圈。

mPaint.setColor(0xFF0000FF);
mCanvas.drawCircle(x,y, radius, mPaint);

现在我想用红色在同一个地方重绘。

mPaint.setColor(0xFFFF0000);
mCanvas.drawCircle(x,y, radius, mPaint);

这永远不会成功。显示的圆圈始终为蓝色。我该怎么做才能在第二个drawCircle

中实现红圈

1 个答案:

答案 0 :(得分:0)

在我曾经工作过的应用程序中,我有:

ImageView playLayout;
Display display;
Canvas canvas;
Bitmap bitmap;
Paint paint;

然后我有:

display = getWindowManager().getDefaultDisplay();
screenHeight = playLayout.getHeight();
screenWidth = playLayout.getWidth();
playLayout = (ImageView)findViewById(R.id.playLayout); //playLayout in xml
bitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);

canvas = new Canvas(bitmap);
paint = new Paint();

然后在一个线程中防止滞后:

   paint.setARGB(255, red, green, blue);

   canvas.drawCircle(x, y, circleRadius, paint);
                        playLayout.post(new Runnable(){
                            @Override
                            public void run(){
                                playLayout.setImageBitmap(bitmap);
                            }
                        });

这对我有用。在我致电playLayout.setImageBitmap之前,圈子实际上并没有画出来。

如果我需要我添加更多信息或任何内容,请告诉我,我会尽力帮助。