今天提出的一个需求,从Imageview获取图片保存到本地相册,虽然不知道这么搞有什么意义不过既然产品提了,就做呗
第一次碰到这种需求,不难,写下来做个记录,直接放大招(代码)
public class MainActivity extends Activity implements OnClickListener { private String strPath; private File sdCardDir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(this); } @Override public void onClick(View v) { if (v.getId() == R.id.button) { ImageView iv = (ImageView) findViewById(R.id.image); iv.setDrawingCacheEnabled(true); Bitmap b = Bitmap.createBitmap(iv.getDrawingCache()); iv.setDrawingCacheEnabled(false); // strPath = "/testSaveView/" + UUID.randomUUID().toString() + ".png"; strPath = Environment.getExternalStorageDirectory() + "/DCIM/Camera/" +"1.jpg"; boolean flag = false; if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { sdCardDir = Environment.getExternalStorageDirectory(); FileOutputStream fos = null; try { File file = new File(sdCardDir, strPath); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } fos = new FileOutputStream(file); b.compress(CompressFormat.JPEG, 100, fos); fos.flush(); flag = true; } catch (Exception e) { Log.e("Save test", "save bitmap error : " + e); } finally { try { fos.close(); } catch (IOException e) { Log.e("Save test", "finally error : " + e); } } } Log.d("Tag", "地址" + sdCardDir.toString()); MediaScannerConnection.scanFile(MainActivity.this, new String[]{sdCardDir.toString()}, null, null); Toast.makeText(MainActivity.this, (flag ? "�����ɹ�" : "����ʧ��"), Toast.LENGTH_LONG).show(); } } }