2012-12-05 13 views
5

'daki bellek istisnasını atar Samsung Xperia S3 modeline sahibim, ki bu da ~ 3000 x 2000 boyutlarında kağıt çekebiliyor. Ayrıca, fotoğraf çekmeyi gerektiren bir uygulama geliştiriyorum. Telefonumu hata ayıklayıcı olarak kullanıyorum ve aygıtın çekilecek resim için sunduğu en iyi boyutu ayarladım.Android onPictureTaken geri çağırma, Bitmap.decodeByteArray

Ancak, bu ayarı kullanırsam, onPictureTaken geri araması Bitmap.decodeByteArray yönteminin ilk satırında bellekte hata verdi ve yakalanan baytları bir bitmap'e çözmeyi denerim. Bitmap.Options.inSampleSize = 2 kullanırsam, bellek yetersiz hatası oluşur.

Uygulamanın, aygıtın sunduğu en iyi görüntüyü yakalayabilmesini ve aygıtın bunu kendi kamera uygulamasında yapmasını istiyorum ancak benim yapamıyorum. Anlamıyorum Bu sorunu nasıl aşabilirim?

+0

Görüntü işlemek için çok büyük olabilir. Yani bellek sızıyor. – Raghunandan

+0

Muhtemelen, ancak neden uygulamanızın sunabileceği en iyi boyuttaki resimleri çekemiyorum. Cihazın kendisi kendi kamera uygulamasında görüntüleri yakalayabiliyor, neden benimkinde yapamıyorum? – rainbowunicorn

+0

lütfen topluluğun size yardımcı olması için bir kod gönderin. – Raghunandan

cevap

0

Android'de bir uygulama 16MB bellek ile çalışmalıdır. Görüntü kalitesini elde etmek için inSampleSize değerini çok büyük bir değere ayarlayacaksanız veya örnekleme gerçekleştirmiyorsanız, bu durumda bellek dışında bir istisna vermeniz muhtemeldir. Bu bağlantıyı ve örnek uygulaması üzerinden

Kontrol: Displaying Bitmaps Efficiently