Android:如何将Bitmap写入内部存储

时间:2015-06-03 21:08:42

标签: java android bitmap save storage

我正在创建一个从网址获取图片的应用。我希望能够将这些图像存储在手机上,这样如果网址与以前相同,则用户无需等待图片加载,而是应用程序将其拉起(因为它已经是收到一次)。

这是我现在的代码:

            URL url2 = new URL("http://ddragon.leagueoflegends.com/cdn/5.9.1/img/champion/" + champ + ".png");
            InputStream is = new BufferedInputStream(url2.openStream());
            //Save is to file
            FileOutputStream fos = null;
            try {
                fos = context.openFileOutput("temp_file", Context.MODE_PRIVATE);
                int b;
                while( (b = is.read()) != -1){
                    fos.write(b);
                }
                fos.close();
            } catch (FileNotFoundException asdf) {
                asdf.printStackTrace();
            }
            bd = BitmapFactory.decodeStream(is);

但是,Bitmap没有fos.write()。另外,我不确定如何超出文件。

任何帮助都会很棒:)

1 个答案:

答案 0 :(得分:1)

Bitmap班级有一个compress()方法可以写入OutputStream

bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);

这将使用无损的PNG格式压缩位图,因此您不会通过压缩来牺牲图像质量。

要在文件写入后访问该文件,请使用decodeFile()

BitmapFactory方法
Bitmap bitmap = BitmapFactory.decodeFile(pathToFile);