Не удается нарисовать круг на растровом изображении?

#android

#Android

Вопрос:

Я могу отобразить растровое изображение, но круг, в котором я рисую, не отображается. Я не уверен, чего мне не хватает.

 private void loadImage() {
    File f = new File(imagesPath, currImageName);

    Bitmap bitmap = BitmapFactory.decodeFile(f.getAbsolutePath());
    BitmapDrawable bitmapDrawable = new BitmapDrawable(bitmap);

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(Color.BLUE);
    canvas = new Canvas();
    canvas.drawCircle(60, 50, 25, paint);
    bitmapDrawable.draw(canvas);

    ImageView imageView = (ImageView)findViewById(R.id.imageview);
    imageView.setAdjustViewBounds(true);
    imageView.setImageDrawable(bitmapDrawable);
}
  

Ответ №1:

Ваш код рисует НЕ на растровом изображении, а рисует ваше растровое изображение на холсте, а затем рисует круг на растровом изображении этого холста. Затем результат выбрасывается. Затем вы устанавливаете свое исходное растровое изображение (без изменений) в ImageView.

Вам нужно создать холст с вашим растровым изображением. Затем метод draw будет отображаться на вашем растровом изображении.

     Bitmap bitmap = BitmapFactory.decodeFile(f.getAbsolutePath());

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setColor(Color.BLUE);

         // create canvas to draw on the bitmap
    Canvas canvas = new Canvas(bitmap);
    canvas.drawCircle(60, 50, 25, paint);

    ImageView imageView = (ImageView)findViewById(R.id.imageview);
    imageView.setAdjustViewBounds(true);
    imageView.setImageBitmap(bitmap);