#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);