在位图上绘制圆圈

时间:2011-04-03 17:02:48

标签: android graphics bitmap

我写了一个应用程序来捕获图片并将其保存在SD卡上。然后我可以将该图像加载到imageview中以显示它。我想在显示它之前在位图上画一个圆圈。下面的代码显示位图,但没有圆圈,任何想法为什么圆圈不存在?

感谢。

BitmapFactory.Options bfo = new BitmapFactory.Options();
        bfo.inSampleSize = 5;
        Bitmap bm = BitmapFactory.decodeByteArray(imageArray, 0, imageArray.length, bfo);
        Log.e(TAG, bm.toString());
        //imageview.setImageBitmap(bm);


        Bitmap bmOverlay = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());
        canvas = new Canvas(bmOverlay);
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        canvas.drawBitmap(bm, new Matrix(), null);
        canvas.drawCircle(750, 14, 11, paint);
        imageview.setImageBitmap(bmOverlay);

1 个答案:

答案 0 :(得分:5)

您可以查看bm.getWidth。如果您使用的样本数量为5,那么您的图像将比原始图像小5倍,从而导致您的圆圈从图像的右侧消失。

你可以尝试:

paint.setStrokeWidth(10);
canvas.drawCircle(50, 50, 25);

就像进行健全检查一样。