Camera API: проблемы с несколькими устройствами

Я разрабатываю приложение для камеры в основном как часть приложения для обмена сообщениями, чтобы прикреплять изображения и т. Д. Приложение должно работать для & gt; = SDK 2.2 и:

яcan't использовать камеру Android по умолчанию так, как мне бы хотелось, потому что:

The nature of the app dictates that the image should not be saved to disk ever and some OEMs (Samsung) love to do this without giving you a choice.

I can't call an intent that any other camera app can intercept because then that app could save the image.

Моя текущая проблема связана с тем фактом, что камера Android явно не любит находиться в портретной ориентации. В частности, после некоторого копания я слежу за дисплеем и, по очереди, вызываюsetDisplayOrientation(90), Это работает, но размеры видимости поверхности также должны быть изменены, и это должно быть сделано в пределах поддерживаемых размеров, или установка параметров приводит к сбою приложения.

Я делаю это с другим найденным фрагментом SOВот (getBestPreviewSize() метод), но у него есть одна вопиющая проблема, которую, я не могу поверить, я не нашел ни у кого другого.

ЧастьtakePicture Жизненный цикл включает в себя вызовPostView картинка обратного вызова. Это то, что показывает неподвижное изображение текущей паузыSurfaceView изображение, которое будет возвращено через byteArray в обратный вызов raw и / или jpeg. Моя проблема в том, что это изображение все еще искажено на нескольких, казалось бы, случайных тестовых устройствах! Таким образом, пользователь видит динамическое изображение с камеры в идеальном соотношении сторон 4: 3, пока не сделает снимок, а изображение, с которым он представлен, сжато. Обратите внимание, что сам байтовый массив является правильным, и когда я создаюBitmap в конечной точке обмена сообщениями все хорошо, но это все еще проблема.

Я не могу видеть, как я могу изменить отображение неподвижного изображения в этой точке. Кто-нибудь может мне с этим помочь?

Ответы на вопрос(3)

Ваш ответ на вопрос