如何在android中压缩文件?

时间:2013-12-06 09:18:26

标签: android file

我想在android中压缩文件。 我使用 createTempFile 创建了一个文件。这是一个图像文件。

有没有办法以编程方式压缩文件?

private static final String JPEG_FILE_PREFIX = "IMG_FILE";
    private static final String JPEG_FILE_SUFFIX = ".jpg";
    String imgFolderPath = "";
    String imgFolderName = "captureDir";
    File imgDir = null;
    File imgFile = null;
    String mCurrentPhotoPath ="";



if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
                isSDAvailable = true;
                File root = android.os.Environment.getExternalStorageDirectory(); 
                imgDir = new File(root,"/"+imgFolderName);
                imgDir.mkdir();
                try {
                    imgFile = File.createTempFile(JPEG_FILE_PREFIX, JPEG_FILE_SUFFIX, imgDir);
                    mCurrentPhotoPath = imgFile.getAbsolutePath();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                //Toast.makeText(TakePictures.this, "External memory available", Toast.LENGTH_SHORT).show();
            }else{
                isSDAvailable = false;
                imgFolderPath = "/data/data/"+ this.getApplicationContext().getPackageName()+ "/"+imgFolderName;
                imgDir = new File(imgFolderPath);
                imgDir.mkdir();
                try {
                    imgFile = File.createTempFile(JPEG_FILE_PREFIX, JPEG_FILE_SUFFIX, imgDir);
                    mCurrentPhotoPath = imgFile.getAbsolutePath();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                //Toast.makeText(TakePictures.this, "External memory not available", Toast.LENGTH_SHORT).show();
            }

由于

3 个答案:

答案 0 :(得分:1)

好吧,你可以查看zip package,但如果它只是一个图像并且它是一个jpg文件,压缩它将没有太大的影响。 JPG已经是一种压缩的图像格式。

如果你有多张图片将它们打包成一个文件可能有意义,那么尺寸不会改变......

答案 1 :(得分:0)

答案 2 :(得分:0)

压缩图像只是使用BitmapFactory并调整

中的压缩级别
Bitmap.createBitmap(width, height, config)

方法,其中config是可用于编辑压缩级别和填充的参数