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