画像をAndroidの内部に保存する方法です。ひっかかったのがAndroidさんは、pngやjpgなんかは、Bitmapとして扱えるんですけど、gifは、bitmapとして扱えないみたい・・・。
肝となるのは、
pngやjpgを保存する
public String saveBitmap(Bitmap image, Context cx){ String fileName = "filename"; //保存先のファイル File file = new File(cx.getExternalCacheDir (), fileName); FileOutputStream outputStream; try { //change image scale // Bitmap resized = Bitmap.createScaledBitmap(bmp, 100, 100, false); outputStream = new FileOutputStream(file); image.compress(Bitmap.CompressFormat.PNG, 90, outputStream); outputStream.close(); } catch (Exception e) { e.printStackTrace(); } return fileName; }今書いてるコードから抜き出して、なんとなく書き換えただけなので、凄い適当なメソッドです。外部の一時フォルダーに保存するためにContextを渡してます。
肝となるのは、
image.compress(Bitmap.CompressFormat.PNG, 90, outputStream);このcompressじゃないのかと。第一引数で画像の拡張子を指定して、第二引数で画質の指定、第三引数に出力するオブジェクトを渡します。また、PNGを指定した場合は、第二引数は意味がありません。