То, что я делаю, кажется, должно быть простым, но я все еще потерялся после того, как прочитал все возможные ответы Stackoverflow, которые я могу найти, и прогуглил каждую статью, которую я могу найти.
Яс помощью предварительного просмотра SurfaceView и захвата изображения из действия, которое установлено для screenOrientation = "landscape" в моем AndroidManifest.xml.
Я следовал примеру кода приложения Camera и думал, что все работает, пока не попробовал мое приложение нанесколько устройств Motorola, работающих под управлением 1.5.
У меня OrientationEventListener работает нормально, и я использую отражение, чтобы увидеть, если установить вращение следующим образом:
final int latchedOrientation = roundOrientation(mLastOrientation + 90);
Parameters parameters = preview.camera.getParameters();
JPLog.d("Setting camera rotation = %d", latchedOrientation);
try {
// if >= 2.0
Method method = Camera.Parameters.class.getMethod("setRotation",
int.class);
if(method != null) {
method.invoke(parameters, latchedOrientation);
}
} catch(Throwable t) {
// if < 2.0
parameters.set("rotation", latchedOrientation);
}
preview.camera.setParameters(parameters);
NexusOne (OS 2.2) - Отлично работает.latchedOrientation = 0, изображение в норме без поворота в заголовке EXIF.
T-Mobile G1 (OS 1.6) - также отлично работает.latchedOrientation = 0, изображение в порядке.
Motorola Backflip (OS 1.5) - изображение повернуто.latchedOrientation = 0, в изображении нет поворота EXIF.
Motorola CLIQ (OS 1.5) - изображение повернуто.latchedOrientation = 0, изображение не имеет поворота EXIF.
Что происходит с этими устройствами Motorola?Я думал, что моя проблема в том, что драйвер камеры Motorola не поворачивает изображения, поэтому нашел классы чтения Sanselan EXIF для Android и готовился повернуть их сам.Забавно то, что есть заголовки EXIF, но нет элемента поворота.
Если я установлю поворот вручную на 90 градусов, изображения получатся идеальными для устройств Motorola, но теперь G1 и NexusOne имеют изображения, которые поворачиваются90 градусов (не то, что я хочу).Должно быть что-то, чего я здесь не получаю.
Я сомневаюсь, что это проблема 1.5, иначе кто-то опубликовал бы информацию об этом?