标签: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