нарисовать круг на растровом изображении - PullRequest
4 голосов
/ 03 апреля 2011

Я написал приложение, которое захватывает изображение и сохраняет его на SD-карте. Затем я могу загрузить это изображение в просмотр изображений, чтобы отобразить его. Я хотел бы нарисовать круг на растровом изображении, прежде чем отобразить его. код ниже отображает растровое изображение, но без круга, есть идеи, почему этот круг не существует?

спасибо.

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 Ответ

5 голосов
/ 03 апреля 2011

Вы можете проверить bm.getWidth. Если вы используете размер выборки 5, ваше изображение будет в 5 раз меньше оригинала, в результате чего ваш круг исчезнет с правой стороны изображения.

Вы можете попробовать:

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

как проверка здравомыслия.

...