Ben kamera önizleme resmi kullanan bir uygulama geliştirmek için bir DroidX kullanıyorum ters. Ben kullanıyorum kod web'de bulunan yerlerde bulunur ama yaygın yöntem "getBestPreviewSize (genişlik, yükseklik, camera.parameters)" standart decodeYUV420SP yöntem null işaretçi durumla başarısız böyle küçük boyut dönen fark ettik.GetSupportedPreviewSize döner genişlik ve yükseklik
Bazı ayıklama benim DroidX için supportedPreviewSizes şunlardır ortaya koymaktadır:
- 144H x 176W
- 240H x 320W
- 288h x 352w
- 480y x 640w
- 480y x 720W
- 448h x 800w
- 720H x 1280w 012.351.641 yükseklik ve genişlik değerleri yatay perspektifi vermek
not edin. Bu kamera yönelimi ile değişmez. getBestSupportedPreviewSizes
'a geçirilen yüzeyin genişliği ve yüksekliği 480w x 778h'dir. I getBestSupportedPreviewSizes()
için camera.parameters geçtikten sonra
bir 352 x 288 boyutunu verir. İşte arama kodudur - Ben biçimi kapalıysa özür dileriz ama burada gider:
if (!cameraConfigured) {
Camera.Parameters parameters=camera.getParameters();
Camera.Size size=getBestPreviewSize(pwidth, pheight, parameters);
if (size!=null) {
parameters.setPreviewSize(size.width, size.height);
camera.setParameters(parameters);
cameraConfigured=true;
}
}
pwidth
ve pheight
surfaceChanged
geri arama en genişlik ve yükseklik parametreleri vardır. camera.setDisplayOrientation'ı (90) denedim; onResume() içinde. Ayrıca tezahürüne oryantasyon (“Portre”) koydum - bu girişimlerin 4 kombinasyonunun hiçbiri bu davranışı değiştirmiyor gibi görünüyor.
Düşüncelerim sadece onları tersine çevirmek için, ama çok açıdan yanlış geliyor. Özgürce mevcut olan bu kod, pek çok başka örnekte kendini kanıtlamış gibi göründüğü için, açıkça yanlış anladım. Bu davranışa herkes bir bakış açısı sağlayabilir mi?
Şimdiden teşekkürler.
Teşekkürler Daniel. Yine de biraz kafam karıştı. Anladığım kadarıyla, yüzey boyutunu getBestPreviewSizes() 'a geçiririz ve önizlemeyi ayarlamak için en uygun genişlik ve yüksekliği döndürür. Dolayısıyla, genişlik yükseklikten küçükse (dikey modda olduğu gibi), sonra döndürülen genişlik fotoğraf makinesinin yüksekliğinden daha küçük olacak veya döndürülen yükseklik fotoğraf makinesinin genişliğinden daha küçük olacaktır. Bu yüzden, getBestPreviewSize işlevinin sonucunu nasıl etkilemediğini anlamıyorum. Düşüncemde neyi özlüyorum? – bob
GetBestPreviewSizes() fns'in çoğunun çevrimiçi olduğunu gördüm, yalnızca en iyi boy oranına sahip bir önizleme boyutu bulmak için genişlik ve yüksekliği kullanın. En boy oranı, yükseklik ve genişliğin çevrilmiş olup olmadığına bakılmaksızın aynıdır. Bu cevabı –
yaptın mı? –