我刚刚开始使用Android编程,我正在创建一个Android应用程序,在该应用程序中,用户可以键入信息,使用ImageView实现拍照并保存信息。我已经达到了能够显示ImageView图像的程度。但是,我无法将拍摄的图像保存到手机的内部存储空间中。这意味着,每当我尝试保存信息时,包括ImageView(来自摄像头的图像),只有图像消失。我在http://www.androidhive.info/2013/09/android-working-with-camera-api/上遵循了本指南,但由于我的手机没有SD卡存储空间,因此无效。
我已经在这里阅读了一堆问题,但他们没有解决问题。
所以如果有人能给我一个关于如何编辑这段代码的详细程序,我可以将图像保存/读取到我的INTERNAL存储中,这将是非常棒的!谢谢。
$checkUserActiveInMyPageRules = Array(
'user' => 'required|exists:user,id,active_status,A'
);
这是我目前的代码:
/**
* returning image / video
*/
private static File getOutputMediaFile(int type) {
// External sdcard location
File mediaStorageDir = new File(
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
IMAGE_DIRECTORY_NAME);
// Create the storage directory if it does not exist
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "
+ IMAGE_DIRECTORY_NAME + " directory");
return null;
}
}
}
答案 0 :(得分:3)
getOutputMediaFile()
正在返回目录,而不是文件。您需要指定要在其中写入图像的(尚未存在的)文件的路径。
package com.commonsware.android.camcon;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import java.io.File;
public class CameraContentDemoActivity extends Activity {
private static final int CONTENT_REQUEST=1337;
private File output=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir=
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
output=new File(dir, "CameraContentDemo.jpeg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));
startActivityForResult(i, CONTENT_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == CONTENT_REQUEST) {
if (resultCode == RESULT_OK) {
Intent i=new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(output), "image/jpeg");
startActivity(i);
finish();
}
}
}
}