我怎样才能将图像保存到我的应用程序? [英] How can I save an image to my app?
本文介绍了我怎样才能将图像保存到我的应用程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在做一个应用程序,让用户拍摄照片,并将其保存到应用程序,这将是密码保护。到目前为止,应用程序可以拍照,检索它,并将其设置为图像视图。然而,当我重新启动应用程序的图像消失。我该如何保存呢?
INT CAPTURE_IMAGE_ACTIVITY_REQUEST_ code = 0;
乌里imageUri;公共无效takePic(查看视图){
意向意图=新意图(MediaStore.ACTION_IMAGE_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_IMAGE_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屋!
查看全文