您的位置:首页 > 其它

关于获取imageview上的图片,保存到相册并通知相册自动更新

2016-05-14 21:50 519 查看
今天提出的一个需求,从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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: