画像を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を指定した場合は、第二引数は意味がありません。