Piensa en capas, una encima de otra. Debajo la imagen del negativo y encima la imagen en cuestión.
Para superponer capas puedes usar una RelativeLayout o un FrameLayout, y dentro las dos imageview, primero el marco y luego la imagen (o viceversa solo si el marco es un png con el interior transparente).
Lo siguiente es ajustar con código las posiciones concretas, más concretamente el margen de la "foto" para que coincida con los bordes del marco. Ahí no te queda otra que echar cuentas sabiendo las proporciones del marco y el tamaño actual que tiene la vista.
Otra opción es crearte una vista propia que herede de imageview y a la que le puedas pasar una segunda imagen. En el método onDraw el imageview haría su trabajo normal con super (pintaría el marco) y tú además dibujarías en el canvas la foto escalada y posicionada convenientemente (= con las operaciones matemáticas de las que no te libras).