Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中压缩文件?_Android_File - Fatal编程技术网

如何在android中压缩文件?

如何在android中压缩文件?,android,file,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 = "captu

我想用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();
            }
谢谢

好吧,你可以看看,但是如果它只是一张图片,而且是一个jpg文件,压缩它不会有多大效果。JPG已经是一种压缩图像格式

如果您有多个图像,可以将它们打包到一个文件中,但是大小不会改变…

你可以使用ZipFile


下面是一个演示

压缩一幅图像就是使用BitmapFactory并在其中调整压缩级别

Bitmap.createBitmap(width, height, config)

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

如果您已经创建了tmp图像文件,它是什么格式?它是JPEG图像格式。因此,它已经压缩,您还需要什么?OP专门询问了文件,您的解决方案仅限于位图