Bonjour,
J'utilise l'intent Camera pour prendre une photo et ensuite l'affiche dans une ImageView. Cela marche sur la plupart des téléphones sauf sur les HTC. Auriez-vous une solution ?
Voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 package com.appareil; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private static final String TAG = MainActivity.class.getSimpleName(); private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100; public static final int MEDIA_TYPE_IMAGE = 1; public static final int MEDIA_TYPE_VIDEO = 2; private Uri imageURICamera; private String fileName; private String realPath; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = new Button(this); button.setText("Take picture"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss"); fileName = dateFormat.format(new Date()) + ".jpg"; File photo = new File(Environment.getExternalStorageDirectory(), fileName); Intent cameraintent = new Intent("android.media.action.IMAGE_CAPTURE"); cameraintent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); imageURICamera = Uri.fromFile(photo); startActivityForResult(cameraintent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) { if (resultCode == RESULT_OK) { realPath = Environment.getExternalStorageDirectory() + "/" + fileName; Bitmap mImageBitmap = BitmapFactory.decodeFile(realPath); ImageView preview = (ImageView) findViewById(R.id.imgView); preview.setImageBitmap(mImageBitmap); } else if (resultCode == RESULT_CANCELED) { // User cancelled the image capture } else { // Image capture failed, advise user } } } }
Partager