2010-05-01 2 views
6

Кто-нибудь сталкивался с странным поведением с API-интерфейсом камеры при использовании на Sony-Ericsson X10 или Droid?Почему Camera.setParameters (Camera.Parameters) не работает на Sony-Ericsson X10 и Droid?

Например, следующий код не работает на этих устройствах. В результате я получаю много негативных откликов на рынке перевод на многие отмененные заказы ...

mParameters.set("rotation", orientation); 
mParameters.set("jpeg-quality", img_quality); 
mParameters.set("picture-size", "1024x768"); 
mCamera.setParameters(mParameters); 

Не могли бы вы предложить альтернативный способ достижения того же? Благодарю.

ответ

11

Вы не можете просто установить случайные значения в параметрах камеры, потому что вы не знаете, будет ли оборудование поддерживать это, поэтому вам нужно сначала спросить!

mCamera = Camera.open(); 
Camera.Parameters params = mCamera.getParameters(); 
List<Size> sizes = params.getSupportedPictureSizes(); 
// See which sizes the camera supports and choose one of those 
mSize = sizes.get(0); 
params.setPictureSize(mSize.width, mSize.height); 
mCamera.setParameters(params); 
+0

Хорошо, это объясняет, почему «картинка-размер» не работает, хотя отвергнутый размер I» вы использовали довольно стандартный «1024x768» ... Есть ли у вас какие-либо идеи о «вращении» ?! Это еще более важно для меня, как будто это не работает, изображение случайным образом повернуто на 90 или -90 градусов. Благодаря! – mobilekid

+0

Ваше решение работает только на версиях ОС Android 2.0 и более поздних версий. Любые идеи о том, как получить поддерживаемые размеры изображения на 1,5 и 1,6? – mobilekid

+0

Похоже, проблема ориентации является известной проблемой для G1. Этот поток работает. http://groups.google.com/group/android-developers/browse_thread/thread/fec92fc79b38c698/b61f3669ec2a4fcf?show_docid=b61f3669ec2a4fcf Что касается получения поддерживаемого изображения размера от 1,6 и ниже не поддерживается поэтому лучшим советом это просто оставить его в покое. – CaseyB

0

Вы должны сначала зафиксировать ориентацию деятельности, а затем должны поставить Смотрит оценки:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
mCamera.setDisplayOrientation(90);