Fondamentalement, ce que je veux faire, c'est permettre à l'utilisateur de créer son propre folder
puis d'aller dans un activity
qui contient un button
pour lancer le camera
.
À partir de là, je veux pouvoir lancer les images camera
et enregistrer les images camera
dans le dossier nouvellement créé.
J'ai des problèmes avec la dernière partie de l'enregistrement des images camera
dans le dossier nouvellement créé.
Voici mon Code
:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
EditText text = (EditText)findViewById(R.id.editText1);
EditText text2 = (EditText)findViewById(R.id.editText2);
@Override
public void onClick(View v) {
final String name = text.getText().toString();
final String placeName = text2.getText().toString();
String place = placeName.substring(0,3);
String direct = name + place ;
File folder = new File("/sdcard/CameraTest/" + direct + "/");
folder.mkdirs();
Intent myIntent = new Intent(CameraTestActivity.this, Press.class);
myIntent.putExtra("key", "/sdcard/CameraTest/" + direct + "/");
startActivity(myIntent);
}
});
De là, je passe à cette activité:
public class Press extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.afterenter);
final String direct = this.getIntent().getStringExtra("key");
// TODO Auto-generated method stub
Button p = (Button) findViewById(R.id.button2);
p.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent camera= new Intent(Android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camera, 1);
}
});
Button np = (Button) findViewById(R.id.button3);
np.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent next = new Intent(Press.this, CameraTestActivity.class);
startActivity(next);
}
});
}
}
Veuillez me dire comment enregistrer les images du camera
dans le dossier nouvellement créé.
Je veux que l'utilisateur puisse prendre plusieurs images puis enregistrer ces plusieurs images dans ce dossier spécifique.
ajoutez ce code avant d'appeler l'activité de la caméra,
Uri uriSavedImage=Uri.fromFile(new File("/sdcard/flashCropped.png"));
camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(camera, 1);
Essayez ceci ....
path = Environment.getExternalStorageDirectory() + "/photo1.jpg";
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(Android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY);
et vous n'avez pas implémenté onActivityResult()
Essayez ceci peut vous aider.
public void onActivityResult(int requestCode, int resultCode, Intent data) {
System.gc();
if (requestCode == CAPTURE_IMAGE_ACTIVITY) {
if (resultCode == Activity.RESULT_OK) {
try {
// Call function MakeFolder to create folder structure if
// its not created
if(imageBitmap != null) {
imageBitmap = null;
imageBitmap.recycle();
}
MakeFolder();
// Get file from temp1 file where image has been stored
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3;
imageBitmap = BitmapFactory.decodeFile(path, options);
imgForPhotograph.setImageBitmap(imageBitmap);
isImageTaken = true;
// Name for image
IMAGEPATH = getString(R.string.chassisImage)
+ System.currentTimeMillis();
SaveImageFile(imageBitmap,IMAGEPATH);
} catch (Exception e) {
Toast.makeText(this, "Picture Not taken",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
}
Vous devez ajouter l'emplacement du fichier à l'intention de capture d'image. Par exemple:
camera.putExtra(Android.provider.MediaStore.EXTRA_OUTPUT, [file location]);
Jetez un oeil ici