当我使用此代码时 - >
public class Response {
private String name;
private String city;
private String fullName;
private String address;
private Integer downloads;
private Integer rating;
private List<String> repos ;
}
我可以将图像保存到指定的路径,但它也保存到图库。我不想将图像保存到图库。请在这里帮忙。
提前感谢您宝贵的时间。
答案 0 :(得分:0)
使用以下意图捕获图像 -
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
// create a file to save the image
File MyDir = new File(Environment.getExternalStorageDirectory() + File.separator + "MyDir");
if (!MyDir.exists()){
MyDir.mkdirs()
}
File fileUri = new File(MyDir.getAbsolutePath() + File.separator + "IMG_"+ timeStamp + ".jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
图库应用程序扫描文件夹中的媒体内容并在图库中填充它们。
如果您不想在图库中显示捕获的图像,请按照以下方法进行操作 -
创建.Nomedia文件
添加点前缀
答案 1 :(得分:0)
试试这个
private void captureCameraImage() {
Intent chooserIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
chooserIntent.putExtra(MediaStore.EXTRA_OUTPUT, getFilename());
startActivityForResult(chooserIntent, CAMERA_PHOTO);
}
返回您可以指定要保存的文件名的方法
public String getFilename() {
File file = new File(Environment.getExternalStorageDirectory().getPath(), "MyFolder/Images");
if (!file.exists()) {
file.mkdirs();
}
String uriSting = (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".jpg");
return uriSting;
}
答案 2 :(得分:0)
我遇到了同样的问题并实施了几个与此one类似的解决方法。
我还尝试隐藏文件,将.
前缀添加到filname,并将.nomedia文件(请参阅MediaStore.MEDIA_IGNORE_FILENAME)放在我存储图像的文件夹中,但在某些情况下,调用相机应用程序像往常一样
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
Uri fileUri = FileProvider.getUriForFile(getContext(), getString(R.string.file_provider_authority), file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(intent, CAMERA_REQUEST_CODE);
} else {
showToastMessage(getString(R.string.no_camera_activity), Toast.LENGTH_LONG);
}
取决于设备和相机应用程序,后者可能会将图片也存储在图库中(通常会保存带有时间戳作为文件名的文件),即使您提供与文件关联的Uri
也是如此存储在您的应用程序私有分区中。
所以我发现做我需要的最可靠的方法是直接由你自己control the camera或在YourActivity
内采用cwac-cam2提供的CommonsWare库这样(注意评论.updateMediaStore()
行)
Uri fileUri = FileProvider.getUriForFile(getContext(), getString(R.string.file_provider_authority), file);
CameraActivity.IntentBuilder builder = new CameraActivity.IntentBuilder(this); // this refers to the activity instance
Intent intent = builder
.skipConfirm()
.facing(Facing.BACK)
.to(fileUri)
//.updateMediaStore() // uncomment only if you want to update MediaStore
.flashMode(FlashMode.AUTO)
.build();
startActivityForResult(intent, CAMERA_REQUEST_CODE);