我一直停留在这一段时间现在已经看过各种教程的帮助,但还没有成功。 任何帮助将是非常美联社preciated,我已经基本上使用的拍照功能我的应用程序拍照并显示它的preVIEW,但它不保存!
下面是包含我尝试了Java code得到它的运作按照教程:
公共类Activity_Camera扩展活动实现View.OnClickListener {
的ImageButton IB;
ImageView的IV;
我的意图;
公共静态最终诠释cameraData = 0;
BMP位图;
@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
。getMenuInflater()膨胀(R.menu.activity_main,菜单);
返回true;
}
@覆盖
公共布尔onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.Info:
意图I =新的意图(这一点,Help.class);
startActivity(ⅰ);
返回true;
默认:
返回super.onOptionsItemSelected(项目);
}
}
@覆盖
保护无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_camera);
初始化();
}
私人无效INITIALISE(){
IV =(ImageView的)findViewById(R.id.ivPicReturn);
IB =(的ImageButton)findViewById(R.id.ibTakePic);
ib.setOnClickListener(本);
}
公共无效的onClick(视图v){
开关(v.getId()){
案例R.id.ibTakePic:
I =新的意图(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(ⅰ,cameraData);
打破;
}
}
@覆盖
保护无效onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,因此code,数据);
如果(结果code == RESULT_OK){
捆绑额外= data.getExtras();
BMP =(位图)extras.get(数据);
iv.setImageBitmap(BMP);
Toast.makeText(这一点,图片保存到:\ N+
data.getData(),Toast.LENGTH_LONG).show();
}否则,如果(结果code == RESULT_CANCELED){
//用户取消了图像采集
} 其他 {
//图像捕捉失败,提醒用户
}
}
私有静态乌里getOutputMediaFileUri(整型){
返回Uri.fromFile(getOutputMediaFile(类型));
}
私有静态文件getOutputMediaFile(整型){
文件mediaStorageDir =新的文件(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES),MyCameraApp);
如果(!mediaStorageDir.exists()){
如果(!mediaStorageDir.mkdirs()){
Log.d(MyCameraApp,无法创建目录);
返回null;
}
}
文件媒体文件;
如果(类型== cameraData){
媒体文件=新的文件(mediaStorageDir.getPath()+文件分割符+
IMG_+.JPG);
} 其他 {
返回null;
}
返回媒体文件;
}
}
我已经列入清单文件中的所有留点权限。
解决方案 文件imagesFolder =新的文件(Environment.getExternalStorageDirectory(),MyImages);
imagesFolder.mkdirs();
文件图像=新的文件(imagesFolder,image.jpg文件);
乌里uriSavedImage = Uri.fromFile(图像);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT,uriSavedImage);
有一个看看这个链接。How在Android的挽救摄像机图像到特定的文件夹?
I have been stuck on this for a while now and have looked at various tutorials for help but have not yet succeeded. Any help would be much appreciated, i have essentially utilised the camera function in my app to take pictures and display a preview of it but it does not save!
Here is the java code containing my attempt to get it functioning according to tutorials:
public class Activity_Camera extends Activity implements View.OnClickListener {
ImageButton ib;
ImageView iv;
Intent i;
public static final int cameraData = 0;
Bitmap bmp;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.Info:
Intent i = new Intent(this, Help.class);
startActivity(i);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
initialise();
}
private void initialise() {
iv = (ImageView) findViewById(R.id.ivPicReturn);
ib = (ImageButton) findViewById(R.id.ibTakePic);
ib.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.ibTakePic:
i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i, cameraData);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
bmp = (Bitmap) extras.get("data");
iv.setImageBitmap(bmp);
Toast.makeText(this, "Image saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
private static Uri getOutputMediaFileUri(int type){
return Uri.fromFile(getOutputMediaFile(type));
}
private static File getOutputMediaFile(int type){
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MyCameraApp");
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("MyCameraApp", "failed to create directory");
return null;
}
}
File mediaFile;
if (type == cameraData){
mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"IMG_" + ".jpg");
} else {
return null;
}
return mediaFile;
}
}
I have already included all the neccessary permissions within the manifest file.
解决方案File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "image.jpg");
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
Have a look at this link.How to save images from Camera in Android to specific folder?