2011-03-07 32 views
12

Fotoğrafı çekmek için Fotoğraf Makinesi Etkinliği kullanıyorum. Buna MediaStore.EXTRA_OUTPUT ek parametresiyle derim. Resim, sağlanan yola göre doğru bir şekilde kaydedildi, galeri klasörüne de kaydedildi, böylece resmi "Galeri" uygulamasında görüntüleyebilirim - bunu önleyebilir miyim?Fotoğraf makinesi davranışı/Etkinlik - Galeriye kaydetmekten kaçının

... 
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg"); 
iImageOutputUri = Uri.fromFile(file); 

// Start camera intent to capture image 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, iImageOutputUri); 
startActivityForResult(intent, CAPTURE_IMAGE); 
... 

Teşekkür

+0

+1. Kamerayı kullanan tüm uygulamaların neden fotoğrafları galeride sakladığını merak ediyordum. – Chris

+3

Fotoğraf makinesinin gerçekte ne yaptığını gerçekten tahmin edemeyeceğiniz bir sonuca vardım. Kısmen, özelleştirilmiş android sürümüne (bu nedenle özel bir kamera etkinliği, vb.) Bağlı olarak değişir. Bunu çözmenin tek yolu, kendi kamera etkinliğinizi yazmaktır. Benim için tüm tuhaflıklarda çalışmanın ve herhangi bir hatayı kullanmamanın en kolay yolu buydu. – Audrius

+3

Merhaba Audrius, Size katılıyorum - bu cihaza bağlı - bazı telefonlarda görüntüyü ayrıca galeriye (ör. LG-P500), bazılarında değil (ör. Samsung Nexus S) kaydediyor. Kamera aktivitesinin birçok yönü oldukça kötüyse, kullanıcı için tamamen minimum olan minimum/maksimum görüntü kalitesi gibi parametrelerin belirtilmesine izin vermez, JPEG'yi arabellekte iade edemez, ör. Daha fazla işleme, vb. Kullanılması çok basit, ancak olabildiğince iyi değil. Bir sonraki projede kendi fotoğraf makinemi kullanacağım ... Bye – STeN

cevap

-3

Bunu önlemek inanmıyorum. Galeri uygulaması SD kartınızı görüntüler ve otomatik olarak görüntüler.

+2

Konu bu değil. Buradaki nokta, resmin gerçekte iki kez kaydedilmiş olmasıdır: bir kez EXTRA_OUTPUT olarak sağlanan konumda bir kez varsayılan konumda. OP'nin kaçınmak istediği de budur – matteo

0

Görüntülerinizi, görüntü olmayan uzantılarla kaydetmeye ne dersiniz? Michael.jpg/png vb. Yerine michael.photo gibi bir şey. Bu şekilde Galeri uygulaması onları almayacak ve bu tür uygulamalar gibi birçok güvensiz görüyorum.

2

Sadece kod getExternalFilesDir() ait

File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "Test.jpg"); 

Açıklama Aşağıdaki ile kod

File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg"); 

değiştirin: birincil harici dosya sistemi üzerinde dizininin tam yolunu döndürür (bu, başvuru sahibinin olduğu Environment.getExternalStorageDirectory())'da bir yerlerde İyon, sahip olduğu kalıcı dosyaları yerleştirebilir. Bu dosyalar uygulamalar için dahilidir ve genellikle medya olarak kullanıcıya görünür değildir. İyi bir soru için

İlgili konular