我怎样才能将图像保存到我的应用程序? [英] How can I save an image to my app?

查看:218
本文介绍了我怎样才能将图像保存到我的应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在做一个应用程序,让用户拍摄照片,并将其保存到应用程序,这将是密码保护。到目前为止,应用程序可以拍照,检索它,并将其设置为图像视图。然而,当我重新启动应用程序的图像消失。我该如何保存呢?

  INT CAPTURE_IMAGE_ACTIVITY_REQUEST_ code = 0;
乌里imageUri;公共无效takePic(查看视图){
    意向意图=新意图(MediaStore.ACTION_IM​​AGE_CAPTURE);
    imageUri = Uri.fromFile(新文件(Environment.getExternalStorageDirectory(),filename_+
            将String.valueOf(System.currentTimeMillis的())+.JPG));
    intent.putExtra(数据,imageUri);
    startActivityForResult(意向,CAPTURE_IMAGE_ACTIVITY_REQUEST_ code);}保护无效的onActivityResult(INT申请code,INT结果code,意图数据){    如果(结果code == RESULT_OK){
        如果(要求code == CAPTURE_IMAGE_ACTIVITY_REQUEST_ code){
            捆绑额外= data.getExtras();            Log.e(URI,imageUri.toString());
            BMP位=(位图)extras.get(数据);
            ImageView的ImageView的=(ImageView的)findViewById(R.id.imageView);            imageView.setImageBitmap(BMP);
        }
        否则,如果(结果code == RESULT_CANCELED){
            Toast.makeText(这一点,照片是没有采取Toast.LENGTH_SHORT);
        }
    }
}


解决方案

这code正在我:

 私人无效takePicture(){    意向意图=新意图(MediaStore.ACTION_IM​​AGE_CAPTURE);    尝试{
        mImageCaptureUri = NULL;
        字符串状态= Environment.getExternalStorageState();
        如果(Environment.MEDIA_MOUNTED.equals(州)){
            mImageCaptureUri = Uri.fromFile(mFileTemp);        }
        其他{            mImageCaptureUri = InternalStorageContentProvider.CONTENT_URI;        }
        intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,mImageCaptureUri);
        intent.putExtra(回归数据,真正的);
        startActivityForResult(意向,REQUEST_ code_TAKE_PICTURE);
    }赶上(例外五){        Log.d(错误,不能拍照,E);
    }
}


  

这是如何定义mFileTemp


 字符串状态= Environment.getExternalStorageState();
文件mFileTemp;
如果(Environment.MEDIA_MOUNTED.equals(州)){
//这是这样的
//任何文件夹名称/您可以添加这样的内部文件夹/您的照片name122412414124.jpg
mFileTemp =新的文件(Environment.getExternalStorageDirectory()+文件分割符+的任何文件夹名称+文件分割符+您可以添加这样的内部文件夹
        您的照片的名字+ System.currentTimeMillis的()+)JPG;
mFileTemp.getParentFile()mkdirs()。
}
其他{
mFileTemp =新的文件(getFilesDir()+的任何文件夹名称+
        文件分割符+myphotos)+文件分割符+profilephotos,您的照片的名字+ System.currentTimeMillis的()+)JPG;
mFileTemp.getParentFile()mkdirs()。
}


  

您的全局变量


 私人乌里mImageCaptureUri;
私人文件mFileTemp;

1)定义的全局变量

2)然后定义mFileTemp

3)然后触发 takePicture()

I am making an app that will let users take photos and save them to the app, which will be password protected. So far, the app can take a picture, retrieve it, and set it to an image view. However, when I restart the app the image goes away. How can I save it?

int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 0;
Uri imageUri;

public void takePic(View view){


    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "filename_" +
            String.valueOf(System.currentTimeMillis()) + ".jpg"));
    intent.putExtra("data", imageUri);
    startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);



}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == RESULT_OK) {
        if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {


            Bundle extras = data.getExtras();

            Log.e("URI", imageUri.toString());
            Bitmap bmp = (Bitmap) extras.get("data");
            ImageView imageView = (ImageView) findViewById(R.id.imageView);

            imageView.setImageBitmap(bmp);




        }
        else if (resultCode == RESULT_CANCELED) {
            Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT);
        }
    }


}

解决方案

This code is working on me :

private void takePicture() {

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    try {
        mImageCaptureUri = null;
        String state = Environment.getExternalStorageState();
        if (Environment.MEDIA_MOUNTED.equals(state)) {
            mImageCaptureUri = Uri.fromFile(mFileTemp);

        }
        else {

            mImageCaptureUri = InternalStorageContentProvider.CONTENT_URI;

        }
        intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
        intent.putExtra("return-data", true);
        startActivityForResult(intent, REQUEST_CODE_TAKE_PICTURE);
    } catch (Exception e) {

        Log.d("error", "cannot take picture", e);
    }
}

This is how to define mFileTemp

String state = Environment.getExternalStorageState();
File mFileTemp;
if (Environment.MEDIA_MOUNTED.equals(state)) {
//this is like that 
//any folder name/you can add inner folders like that/your photo    name122412414124.jpg
mFileTemp = new File(Environment.getExternalStorageDirectory()+File.separator+"any folder name"+File.separator+"you can add inner folders like that"
        , "your photo name"+System.currentTimeMillis()+".jpg");
mFileTemp.getParentFile().mkdirs();
}
else {
mFileTemp = new File(getFilesDir()+"any folder name"+
        File.separator+"myphotos")+File.separator+"profilephotos", "your photo name"+System.currentTimeMillis()+".jpg");
mFileTemp.getParentFile().mkdirs();
}

Your global variables

private Uri mImageCaptureUri;
private File mFileTemp;

1) Define your global variables

2) Then define mFileTemp

3)Then trigger takePicture() method

这篇关于我怎样才能将图像保存到我的应用程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆