我正试图用这段代码拍照:
capturarFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("debugging","Has clicat al botó");
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1888);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1888 && resultCode == -1) { //-1 = TOT HA ANAT BE.
Bitmap photo = (Bitmap) data.getExtras().get("data");
Log.d("debugging",""+photo.getHeight());
Log.d("debugging",""+photo.getWidth());
((ImageView) myFragmentView.findViewById(R.id.fotoCapturada)).setImageBitmap(photo);
}
}
这是完美的,当我拍摄照片时,它显示在ImageView中。但我正在尝试创建某种可编辑的选项,旋转等等。所以我不想保存它(所以画廊已经缓存了它!!)。
我已经阅读了一些类似的问题,这是很棒的事情:
我正在尝试更新上面的代码,以适应它来实现这些要点,但我在google中找到的代码,总是使用其他api,其中一些,旧...
有没有“简单”的方法来实现这个目标?
创建文件夹和创建该文件的部分并不是什么大问题,所以:
- 如何为我的应用程序拍摄的照片设置保存路线?
谢谢。
编辑:
好的,我发现了一些代码,但它无法正常工作(即使我提供了SD写入权限):
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/folder/" + "filename" + ".jpg");
Uri imageUri = Uri.fromFile(file);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(cameraIntent, 1888);
答案 0 :(得分:1)
好吧,最后我发现了如何将图片保存到我们想要的URI中:
public void onClick(View v) {
Log.d("debugging","Has clicat al botó");
File folder = new File(Environment.getExternalStorageDirectory().toString()+"/ImagesFolder/");
folder.mkdirs();
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri uriSavedImage=Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/ImagesFolder/imatge.jpg"));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(cameraIntent, 1888);
}
就是这样。
请记住授予SDCard写入权限。