2011-01-06 15 views
6

Ortam ışığından bağımsız olarak aynı pozlamayı gerektiren bir kamera uygulaması yazıyorum. Ne yazık ki, setExposureCompensation() sadece bir ofset gibi davranır. Bu otomatik ayarlamayı kapatabilir miyim, yoksa daha önceden kullanıcı tarafından yapılan bir donanım düzeltmesi mi?Otomatik pozlama telafisini tamamen kapatma?

+0

, muhtemelen bu geçmiş taşıdığınız bu gibi ama pozlama kilitlemek için yeni bir 4.0+ API başvurmak için aşağıdaki cevabımı güncelledik. – kcoppock

cevap

5

DÜZENLEME: Yani, Android 4.0 ve üstü için, ihtiyacınız olan şey için çalışması gereken bir setAutoExposureLock(boolean) var. Pozlamayı kendiniz ayarlamanıza izin vermez, ancak pozlama belirlendikten sonra, mevcut pozuna kilitleyebilirsiniz. Cihazın bu özelliği desteklediğinden emin olmak için isAutoExposureLockSupported() kontrolüne sahip olmalısınız.

Her seferinde aynı pozlamayı elde etmek için sabit bir ISO, deklanşör hızı ve diyafram ayarlayabilmeniz gerekir. Dediğiniz gibi, pozlama telafisi sadece kameranın otomatik olarak belirlediği ölçülü pozlamadan dengelenir. Bilgime göre, Android'de ISO, deklanşör hızı veya diyafram değerlerini ayarlamak için yerleşik bir yol yoktur.

+0

Bu yazının çok eski olduğunu biliyorum, ancak pozlama değerini ayarlamak için çözüm arıyordum. Pozlama değerini ayarlamak mümkün görünüyor. Sadece mağazadaki herhangi bir kamera uygulamasına bakın ve pozlama değerini ayarlamanıza izin verir. – pree

+0

@pree Dokümanları kontrol ettiniz mi? http://developer.android.com/reference/android/hardware/Camera.Parameters.html#setExposureCompensation(int) – kcoppock

+0

Evet, elbette. Sadece yukarıda belirtildiği gibi setExposureCompensation() vb API'lerinden bahseder. Ancak, diğer kamera uygulamalarının (standart bir ve google oyun pazarı) pozlama değerlerini nasıl ayarlayabileceğini merak ediyorum. Ayrıca buradaki sorumu da şu adreste yayınladım: http://stackoverflow.com/questions/24620850/android-camera-settings-change-exposure-programatically – pree

0

ISO, obtüratör hızı ve diyafram ile ilgili herhangi bir şey olup olmadığını görmek için tüm kamera parametrelerine göz atmalısınız.

Örnek: Eski As

Camera.Parameters params = mCamera.getParameters(); 
String sParams = params.flatten(); 
Log.d("TAG", "camera flatten: "+sParams); 
İlgili konular