2010-07-06 17 views
2

J'ai écrit une application simple qui ouvre la caméra et fournit un chemin pour enregistrer les images capturées.Android Capture d'image petites tailles sur Milestone

Le code ressemble fondamentalement ceci:

File file = new File(Environment.getExternalStorage() + "myimages/", 
"my_image.jpg"); 

Uri outputUri = Uri.fromFile(file); 

Intent intent = new 
Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
Intent.putExtra(MediaStore.EXTRA_OUTPUT, outputUri); 

Cela fonctionne parfaitement sur mon Droid. Les images sont systématiquement sauvegardées à 2592x1936. Cependant, lors du test sur le Milestone, les images sont enregistrées dans des tailles beaucoup plus petites, telles que 320x240 et 1280 x 1900. En utilisant adb logcat, je peux voir que la taille de l'image est définie dès que la photo est prise.

Il semble qu'il existe un paramètre par défaut sur le jalon qui provoque ce comportement.

Toute aide serait grandement appréciée.

Merci, ~ Jeremy

Répondre

1

Chaque téléphone a sa propre application de la caméra. Écrite fabricant Chaque application de caméra décide combien redimensionner et/ou compresser les images prises. Si vous testez sur plusieurs téléphones, vous constaterez probablement que vous obtenez une variété de tailles et de qualités d'image. Tant que vous utilisez des intentions, c'est à n'importe quelle activité que l'utilisateur choisit de gérer cette intention (qui pourrait toujours être différente de l'application de caméra par défaut de toute façon) pour décider quoi en faire.

Si vous souhaitez appliquer une taille d'image ou une qualité particulière, vous devez écrire votre propre activité de caméra. Gardez à l'esprit que différents téléphones vont avoir un matériel différent qui prend des images à une grande variété de résolutions différentes de toute façon. Vous devriez être capable d'aller mieux que 320x240, mais vous ne serez pas en mesure d'obtenir une taille constante sur tous les téléphones, car le matériel est différent.