android– 如何在拍照后从ImageView保存图像

android– 如何在拍照后从ImageView保存图像,第1张

概述我正在从画廊中挑选照片或者用相机拍照.如果我将图片放入我的imageView,然后单击确认按钮,我该如何保存该图片?我必须使用saveState()吗?请发表一些评论.谢谢.protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requ

我正在从画廊中挑选照片或者用相机拍照.
如果我将图片放入我的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保存图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1105557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存