码迷,mamicode.com
首页 > 移动开发 > 详细

Android实现将Drawable资源ID存储到Sdcard上

时间:2015-08-29 14:08:57      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:android   存储图片   drawable   bitmap   sdcard   

过程分为三步:
1. 将资源ID转化为Drawable
2. 将Drawable转化为Bitmap
3. 将Bitmap存储到Sdcard上


代码如下:

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        saveDrawableById(R.drawable.p4, "p4.jpg", Bitmap.CompressFormat.JPEG);
    }

    /**
     * 存储资源为ID的图片
     * @param id
     * @param name
     */
    public void saveDrawableById(int id, String name, Bitmap.CompressFormat format) {
        Drawable drawable = idToDrawable(id);
        Bitmap bitmap = drawableToBitmap(drawable);
        saveBitmap(bitmap, name, format);
    }

    /**
     * 将资源ID转化为Drawable
     * @param id
     * @return
     */
    public Drawable idToDrawable(int id) {
        return this.getResources().getDrawable(R.drawable.p4);
    }

    /**
     * 将Drawable转化为Bitmap
     * @param drawable
     * @return
     */
    public Bitmap drawableToBitmap(Drawable drawable) {
        if(drawable == null)
            return null;
        return ((BitmapDrawable)drawable).getBitmap();
    }

    /**
     * 将Bitmap以指定格式保存到指定路径
     * @param bitmap
     * @param path
     */
    public void saveBitmap(Bitmap bitmap, String name, Bitmap.CompressFormat format) {
        // 创建一个位于SD卡上的文件
        File file = new File(Environment.getExternalStorageDirectory(),
                name);
        FileOutputStream out = null;
        try{
            // 打开指定文件输出流
            out = new FileOutputStream(file);
            // 将位图输出到指定文件
            bitmap.compress(format, 100,
                    out);
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android实现将Drawable资源ID存储到Sdcard上

标签:android   存储图片   drawable   bitmap   sdcard   

原文地址:http://blog.csdn.net/zgljl2012/article/details/48086449

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!