保存在内部存储中捕获的图片?
Posted
技术标签:
【中文标题】保存在内部存储中捕获的图片?【英文标题】:Save picture captured in Internal Storage? 【发布时间】:2013-03-17 18:59:18 【问题描述】:我编码拍照并将其保存在外部存储中。它在我的带有 sd 卡的平板电脑上运行良好。但是,我的手机不支持 sd 卡时遇到了一些问题。谁能帮我写代码来保存在内部存储中。谢谢!
((Button) findViewById(R.id.btnTaken))
.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
takeImage();
);
protected void takeImage()
Log.i(TAG,"onClick event");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
String currentDateandTime = sdf.format(new Date());
String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/Image_" + currentDateandTime + ".jpg";
mCamera.takePicture(fileName);
Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show();
public void takePicture(final String fileName)
Log.i(TAG, "Tacking picture");
PictureCallback callback = new PictureCallback()
private String mPictureFileName = fileName;
@Override
public void onPictureTaken(byte[] data, Camera camera)
Log.i(TAG, "Saving a bitmap to file");
Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length);
try
FileOutputStream out = new FileOutputStream(mPictureFileName);
picture.compress(Bitmap.CompressFormat.JPEG, 90, out);
picture.recycle();
mCamera.startPreview();
catch (Exception e)
e.printStackTrace();
;
Camera.ShutterCallback shutter = new Camera.ShutterCallback()
public void onShutter()
Log.e(getClass().getSimpleName(), "SHUTTER CALLBACK");
;
Camera.PictureCallback raw = new Camera.PictureCallback()
public void onPictureTaken(byte[] data, Camera c)
Log.e(getClass().getSimpleName(), "PICTURE CALLBACK RAW: " + data);
mCamera.startPreview();
;
mCamera.takePicture(shutter, raw, callback) ;
【问题讨论】:
同样的问题在 30 分钟前被问过 ***.com/questions/15662258/… @user2205173 检查这个connectcoders.blogspot.com 【参考方案1】:这很简单..而不是外部文件路径名..您应该提供内部文件路径名..这是FileOutputStream out = new FileOutputStream(new File(getFilesDir()+File.separator+"MyFile.jpg"));
..请尝试一下..它工作得很好
和
还有一件事,你应该在android Manifest.xml文件中添加内部存储的权限
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
【讨论】:
该权限不存在,OutputStream 不是文件名。 我也知道输出流。这是一个基本的事情。从那个“输出”变量中,您可以写入数据。你知道在 OutPutStream 中写入数据吗???以上是关于保存在内部存储中捕获的图片?的主要内容,如果未能解决你的问题,请参考以下文章