Capture photo Capture Mise en œuvre ci-dessous. P> Intention Code> Causes
NullpointException Code> sur les téléphones Samsung uniquement.
final Button capture = (Button)findViewById(R.id.capture_button);
capture.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap thumbnail = (Bitmap)data.getExtras().get("data");
ImageView image = (ImageView)findViewById(R.id.photoResultView);
image.setImageBitmap(thumbnail);
}
}
4 Réponses :
J'ai trouvé une solution (pas mon travail) qui le fait fonctionner pour les appareils Samsung. Le blog avec explication peut être trouvé Ici .
Cependant, l'utilisation de ce correctif sur les téléphones non Samsung renvoie la mauvaise image, je vais donc utiliser un P>
if(imageURI != null) { // do it the normal way else { // do it the "Samsung" way }
Comme @pyrodante a suggéré "Cependant, l'utilisation de ce correctif sur les téléphones non Samsung renvoie la mauvaise image, alors j'utiliserais un" N'importe lequel pourrait-il poster le code complet, qui devrait fonctionner à la fois sur Samsung et Non Samsung
Vous pouvez vérifier un peu de manière simple ici pour obtenir URI.
Obtenir la capture de la caméra Capture de l'image dans Android P>
Caméra d'appel forte> P> final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC");
if ( c1.moveToFirst() ) {
String uristringpic = "content://media/external/images/media/" +c1.getInt(0);
Uri newuri = Uri.parse(uristringpic);
Log.i("TAG", "newuri "+newuri);
}
c1.close();
}
Obtenir la capture de la caméra Capture de l'image dans Android
Appeler la caméra P>
final ContentResolver cr = getContentResolver(); final String[] p1 = new String[] { MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATE_TAKEN }; Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null, p1[1] + " DESC"); if ( c1.moveToFirst() ) { String uristringpic = "content://media/external/images/media/" +c1.getInt(0); Uri newuri = Uri.parse(uristringpic); Log.i("TAG", "newuri "+newuri); } c1.close();
Link Lone est considéré comme une réponse médiocre car elle n'a pas de sens en soi et que la ressource cible n'est pas garantie d'être vivante à l'avenir. S'il vous plaît essayez d'inclure au moins un résumé des informations que vous reliez à.
Il suffit de recevoir le même problème sur un Samsung S4 et découvrez que l'ajout de configchanges à l'androidmanifest.xml a résolu le problème:
<activity android:name=".YourActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:screenOrientation="portrait" > </activity>
Travaille pour moi! Weird Samsung!
@Matt l'image.setimagebitmap (thumbnail); ligne comme la vignette était nulle