我想从网上下载一些gif格式的图片,现在已经可以得到它的Bitmap对象(bmp),要把它保存到SD卡中(file),发现有下面的方法:
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
bmp.compress(Bitmap.CompressFormat.JPEG, 80, bos);
但是好像compress()方法只能保存jpg格式或者png格式,因此我想问一下,如何才能保存为gif格式呢?
谢谢!
------解决方案--------------------
先把bitmap对象转换成byte字节或者buff,然后再直接用bos.write写入去
------解决方案--------------------
其实android中IO处理和java是一样的,你参考一下下面的下载方法吧,判断文件名后缀和保存到SD卡中就没写出来了
- Java code
//path为下载路径,saveName是保存名称可以是任何文件public void getImage(String path, String saveName) throws Exception { URL url = new URL(path); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.setConnectTimeout(1000 * 6); if (con.getResponseCode() == 200) { InputStream inputStream = con.getInputStream(); byte[] b = getByte(inputStream); File file = new File(saveName); FileOutputStream fileOutputStream = new FileOutputStream(file); fileOutputStream.write(b); fileOutputStream.close(); } } private byte[] getByte(InputStream inputStream) throws Exception { byte[] b = new byte[1024]; ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int len = -1; while ((len = inputStream.read(b)) != -1) { byteArrayOutputStream.write(b, 0, len); } byteArrayOutputStream.close(); inputStream.close(); return byteArrayOutputStream.toByteArray(); }