Note to others: the solution was to use a textureview (android 14+) On Friday, 25 April 2014 17:57:11 UTC+1, Sam Duke wrote: > > Im trying to show a camera preview to the user of arbitrary size. What I'd > like to do is pick an appropriate camera size based on the size of the > preview, then effectively do a center-crop of the camera output into this > (ie maintain aspect-ratio of the camera preview). As far as i can tell, the > camera by default stretches the camera onto the surface view so i need to > make the surface view have the same aspect as the chosen camera size and > then use another view to crop this. > > I've had some success by adapting the code from the (rather complicated) > android Camera app. (from here) > https://android.googlesource.com/platform/packages/apps/Camera.git/+/master > I noticed that the app uses two modes of operation depending on whether > surface textures are available. I didn't want to get into manually drawing > onto canvases as that seems overkill for this so I essentially tried to > take the surfaceholder implementation and flip the equality test in > "PreviewFrameLayout" like so: > > if (longSide < shortSide * mAspectRatio) > > Right now i have the correct behaviour in a small preview, but if i try to > make it the start of the screen the application seems to just quit (i think > drawing off the screen causes an issue). > > SO I'm basically back at square 1 and I've been working at this for so > long i figure i must just be doing something wrong. can anyone tell me what > im doing wrong or if this is even possible? It feels like there is some > fundamental limitation preventing me from having one view crop another... >
-- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

