Android 获取drawable目录图片 并存入指定文件

第一步:获取存储的路径 我们用/sdcard/Android/data/包名/的路径 方便我们测试查看

	String path=MyApplication.getContextObject().getExternalFilesDir("").toString();
	File file=new File(path);

第二步:根据该文件中存储的路径信息在文件系统上创建一个新的空文件

File finalImageFile = new File(file, System.currentTimeMillis() + ".jpg");
	 try {
	     finalImageFile.createNewFile();
	 } catch (IOException e) {
	     e.printStackTrace();
	 }
	

第三步:将字节放入文件输出流

	 FileOutputStream fos = null;
	 try {
	     fos = new FileOutputStream(finalImageFile);
	 } catch (FileNotFoundException e) {
	     e.printStackTrace();
	 }
	

第四步:将图片压缩成图片格式

 BitmapDrawable bitmapDrawable = (BitmapDrawable)MyApplication.getContextObject().getResources().getDrawable(R.drawable.account);
	 Bitmap bitmap=bitmapDrawable.getBitmap();
	 if (bitmap == null) {
	     Toast.makeText(MyApplication.getContextObject(), "图片不存在",Toast.LENGTH_LONG).show();
	     return;
	 }
	 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
	 try {
	     fos.flush();
	     fos.close();
	     Toast.makeText(MyApplication.getContextObject(), "图片保存在:"+ finalImageFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
	 } catch (IOException e) {
	     e.printStackTrace();
 }

完整代码

	String path=MyApplication.getContextObject().getExternalFilesDir("").toString();
	File file=new File(path);
	
	 File finalImageFile = new File(file, System.currentTimeMillis() + ".jpg");
	 try {
	     finalImageFile.createNewFile();
	 } catch (IOException e) {
	     e.printStackTrace();
	 }
	
	 FileOutputStream fos = null;
	 try {
	     fos = new FileOutputStream(finalImageFile);
	 } catch (FileNotFoundException e) {
	     e.printStackTrace();
	 }
	
	 BitmapDrawable bitmapDrawable = (BitmapDrawable)MyApplication.getContextObject().getResources().getDrawable(R.drawable.account);
	 Bitmap bitmap=bitmapDrawable.getBitmap();
	 if (bitmap == null) {
	     Toast.makeText(MyApplication.getContextObject(), "图片不存在",Toast.LENGTH_LONG).show();
	     return;
	 }
	 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
	 try {
	     fos.flush();
	     fos.close();
	     Toast.makeText(MyApplication.getContextObject(), "图片保存在:"+ finalImageFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
	 } catch (IOException e) {
	     e.printStackTrace();
	 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值