Search code examples
androidcamerapreview

How to display preview camera behind a frame and take picture include frame


I'm trying build a camera app in android using camera API.

I follow the instructions: https://examples.javacodegeeks.com/android/core/hardware/camera-hardware/android-camera-example/ and I have built one camera app

Now i need to display preview camera inside a frame and take picture include the frame

Please see the two pictures below:

Frame in resource folder : https://i.sstatic.net/AaNIQ.png

The photo I want to achieve: https://i.sstatic.net/UWXcq.jpg

Anyone can give me suggestions or if possible give me a simple example?

I searched about this but didn't get proper example.

Thank you so much.


Solution

  • Half of the answer can be found here: https://stackoverflow.com/a/47240902/192373.

    As for keeping the same layout for full-res picture capture, first of all make sure that you keep preview- and picture- sizes in sync. This does not mean that they must be the same, but the aspect ratios should. Some devices have weird effects when the aspect ratio changes to capture a photo.

    Next, you capture the jpeg as usual, unpack it to bitmap, overlay with the frame bitmap (you may need a hi-res version of your frame here) and combine the two (based on https://stackoverflow.com/a/4863551/192373):

    public Bitmap combineImages(Bitmap picture, Bitmap frame) {
     Bitmap bmp = Bitmap.createBitmap(picture.getWidth(), picture.getHeight(), Bitmap.Config.ARGB_8888); 
    
     Canvas comboImage = new Canvas(bmp); 
    
     comboImage.drawBitmap(picture, 0f, 0f, null); 
     comboImage.drawBitmap(frame, 0f, 0f, null);  
    
     return bmp; 
    }