El método ImageView: onDraw dibuja "detrás" del fondo de la imagen, no en la parte superior

Aquí está el código de una simple extensión de un ImageView que permite al usuario dibujar con el dedo.

public class MyImageView extends ImageView { List<Point> points = new ArrayList<Point>(); Paint paint = new Paint(); public MyImageView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void onDraw(Canvas canvas) { for (Point point : points) { canvas.drawCircle(point.x, point.y, 5, paint); // Log.d(TAG, "Painting: "+point); } super.onDraw(canvas); } @Override public boolean onTouchEvent(MotionEvent event) { super.onTouchEvent(event); Point point = new Point(); point.x = event.getX(); point.y = event.getY(); points.add(point); invalidate(); Log.d("", "point: " + point); return true; } class Point { float x, y; @Override public String toString() { return x + ", " + y; } } } 

Este trabajo bastante bien.

Ahora, quiero usar este código para dibujar en la parte superior de un mapa de bits.

Solía:

 MyImageView ivPic = (MyImageView) dialog.findViewById(R.id.ivPic); ivPic.setImageBitmap(picture); 

Pero el dibujo se dibuja "detrás" del mapa de bits:

Introduzca aquí la descripción de la imagen

¿Tiene alguna idea de cómo puedo dibujar en la parte superior del Bitmap?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.