我正在从画廊中挑选照片或者用相机拍照.
如果我将图片放入我的imageVIEw,然后单击确认按钮,我该如何保存该图片?
我必须使用saveState()吗?
请发表一些评论.
谢谢.
protected voID onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != RESulT_OK) return; switch (requestCode) { case PICK_FROM_CAMERA: Bitmap selectedImage = (Bitmap) data.getExtras().get("data"); selectedImage = Bitmap.createScaledBitmap(selectedImage, 80, 80, false); mImageVIEw.setimageBitmap(selectedImage); break; case PICK_FROM_galLERY: Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); System.out.println("Image Path : " + selectedImagePath); mImageVIEw.setimageURI(selectedImageUri); break; }}private voID saveState() { String name = (String) nameEdit.getText().toString(); String category = (String) categoryEdit.getText().toString(); String expired_date = (String) expired_Date_Btn.getText().toString(); ImageVIEw image = (ImageVIEw) mImageVIEw.setimageURI(); //how to edit? if(mRowID == null) { long ID = mDbHelper.insertItem(category, name, expired_date); if(ID>0) { mRowID = ID; } } else { mDbHelper.updateItem(mRowID, category, name, expired_date); }}//How can I save image after clicking button?confirmbutton.setonClickListener(new VIEw.OnClickListener() { public voID onClick(VIEw v){ setResult(RESulT_OK); finish(); }});
解决方法:
您可以按照以下步骤保存所有VIEw(不仅是ImageVIEw)的图像:
1.获取视图的位图:
public Bitmap loadBitmapFromVIEw(VIEw v) { Bitmap b = Bitmap.createBitmap(v.getWIDth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(b); v.draw(c); v.invalIDate(); return b;}
2.将它保存在您的SD卡文件中(或任何您想要的地方):
protected String saveBitmap(Bitmap bm, String name) throws Exception { String tempfilePath = Environment.getExternalStorageDirectory() + "/" + getPackagename() + "/" + name + ".jpg"; file tempfile = new file(tempfilePath); if (!tempfile.exists()) { if (!tempfile.getParentfile().exists()) { tempfile.getParentfile().mkdirs(); } } tempfile.delete(); tempfile.createNewfile(); int quality = 100; fileOutputStream fileOutputStream = new fileOutputStream(tempfile); bufferedoutputstream bos = new bufferedoutputstream(fileOutputStream); bm.compress(CompressFormat.JPEG, quality, bos); bos.flush(); bos.close(); bm.recycle(); return tempfilePath;}
这些代码来自我的一个项目,但我认为它们易于理解和重用.希望它会对你有所帮助.
总结以上是内存溢出为你收集整理的android – 如何在拍照后从ImageView保存图像全部内容,希望文章能够帮你解决android – 如何在拍照后从ImageView保存图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)