Oleg Novosad
Oleg Novosad

Reputation: 2431

Android: How to draw over downloaded bitmap and then populate it to ImageView?

My application is downloading a bitmap which is later populated into custom ImageView. However I want this bitmap to be updated before it is actually drawn on a canvas (I want to add some points over it). However as the result I see only populated bitmap without changes I made. Can anyone help?

Here is my onDraw method. "bitmap" object is set via setImageBitmap received from AsyncTask in onPostExecute() method.

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    if (bitmap != null) {
        Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width = size.x;
        int padding = (width - bitmap.getWidth()) / 2;

        canvas.drawBitmap(bitmap, padding, 0, null);

        paint.setColor(Color.RED);
        paint.setStrokeWidth(5f);
        for (Face face : getPhotoObject().getFaces()) {
            canvas.drawPoint(face.getLeftEye().x, face.getLeftEye().y, paint);
            canvas.drawPoint(face.getRightEye().x, face.getRightEye().y, paint);
        }
    }
}

Upvotes: 0

Views: 72

Answers (1)

Gil Moshayof
Gil Moshayof

Reputation: 16781

You can create a canvas with a bitmap at any time:

Canvas canvas = new Canvas(myBitmap);
// draw code
// the resulting bitmap will be edited.

Hope this helps

Upvotes: 1

Related Questions