0

我正在使用 Android 将多个图像保存在 sd 卡中,但它也保存在画廊和特定文件夹中......任何人都可以帮助解决这个问题......

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_PIC_REQUEST);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_PIC_REQUEST) {
        // 2
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");

        mImage.setImageBitmap(thumbnail);
        CharSequence time2 = android.text.format.DateFormat.format(
                "yymmddhhmmss", new java.util.Date());
        String date1 = time2.toString();

        //ByteArrayOutputStream bytes = new ByteArrayOutputStream();
         try {

                thumbnail .compress(CompressFormat.JPEG, 100, new FileOutputStream(Environment.getExternalStorageDirectory()
        .getAbsolutePath()  + "/mypics/img" + date1 + ".png"));
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }


    } else
        Toast.makeText(getBaseContext(), "Please take snap again",
                Toast.LENGTH_LONG).show();
}       
4

2 回答 2

2

试试这样::

使用此功能将位图保存在 SD 卡中

private void SaveIamge(Bitmap finalBitmap) {

String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");    
myDir.mkdirs();
Random generator = new Random();
int n = 10000;
n = generator.nextInt(n);
String fname = "Image-"+ n +".jpg";
File file = new File (myDir, fname);
if (file.exists ()) file.delete (); 
try {
       FileOutputStream out = new FileOutputStream(file);
       finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
       out.flush();
       out.close();

} catch (Exception e) {
       e.printStackTrace();
}
}

并在清单中添加此权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

要保存在图库中,只需添加这个:

sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
        Uri.parse("file://" + Environment.getExternalStorageDirectory())));
于 2013-10-28T07:24:59.520 回答
1

如果您不希望/mypics/img/文件夹内的图像显示在图库中。您需要做的就是:

.nomedia在您的目录中包含一个名为的空文件/mypcis/img/ (注意文件名中的点前缀)。这将阻止 Android 的媒体扫描仪读取您的媒体文件并将它们包含在画廊或音乐等应用程序中。

注意:对于某些设备,这仅适用于新文件夹(不适用于已扫描的文件夹)因此我的建议是使用该文件创建一个新文件夹.nomedia并将您的图像存储到该文件夹​​中。现在它们不会出现在画廊中。仅在外部 SD 卡文件夹中。

于 2013-10-28T07:13:16.877 回答