3

これが私のコードです...場所に保存したい場所がわかりDrawable dますFile f

    ImageView imgView = (ImageView)header.findViewById(R.id.imvCover);
    File cacheDir = this.getCacheDir();
    File f = new File(cacheDir, itemDict.get("Barcode") + ".jpg");
    if (f.exists())
    {
        Bitmap bmp = BitmapFactory.decodeFile(f.getAbsolutePath());
        imgView.setImageBitmap(bmp);
    }
    else
    {
        String url = (String)itemDict.get("imageURL");
        InputStream is = null;
        try {
            is = (InputStream) new URL(url).getContent();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) { 
            e.printStackTrace();
        }

        Drawable d = Drawable.createFromStream(is, "src");
        if (d != null)
        {
            imgView.setImageDrawable(d);

            // TODO: save the drawable into the cache directory
        }
        else
        {
            imgView.setImageResource(R.drawable.cam);
        }
    }   

Drawable を .jpg として保存するにはどうすればよいですか?

4

1 に答える 1

4

Bitmap.compress(...)次のように使用します。

try {
   bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream("/someLocation/someFileName.jpg"));
} catch (Exception e) {
   //TODO: Handle exception
}

キャッシュ ディレクトリ パスを取得する方法の例については、この SO の回答を参照してください。

android-download-images-from-server-and-save-them-on-device-cache

そして、これは からDrawableへの変換Bitmap時:

ドローアブルをビットマップに変換する方法

于 2012-11-13T00:21:53.293 に答える