android-怎么在电话记忆卡里创建文件夹然后保存图像?

问题描述

怎么在电话记忆卡里创建文件夹然后保存图像?
怎么在电话的记忆卡创建新的文件夹""MyFolder""然后将所有拍的照片保存到那个文件夹中?请帮下我。
下边的代码都会将所有的照片都保存到收集默认图片库中。我想要创建一个新的文件夹然后把所有拍的照片都保存到那个文件夹中,我应该怎么做?

public class PhotoCaptureExample extends Activity   {protected Button _button;protected ImageView _image;protected TextView _field;protected String _path;protected boolean _taken;protected static final String PHOTO_TAKEN   = ""photo_taken""; @Override  public void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    _image = ( ImageView ) findViewById( R.id.image );    _field = ( TextView ) findViewById( R.id.field );    _button = ( Button ) findViewById( R.id.button );    _button.setOnClickListener( new ButtonClickHandler() );   ;  _path = Environment.getExternalStorageDirectory() + ""/myfolder    /""+System.currentTimeMillis()+"".jpg"";    File dir = new File(_path );    try{      if(dir.mkdir()) {         System.out.println(""Directory created"");      }       else {         System.out.println(""Directory is not created"");      }}      catch(Exception e){    }   }public class ButtonClickHandler implements View.OnClickListener {    public void onClick( View view ){        Log.i(""MakeMachine""ButtonClickHandler.onClick()"" );        startCameraActivity();    }}protected void startCameraActivity(){    Log.i(""MakeMachine""startCameraActivity()"" );    File file = new File( _path );    Uri outputFileUri = Uri.fromFile( file );    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );    intent.putExtra( MediaStore.EXTRA_OUTPUT outputFileUri );    startActivityForResult( intent 0 );}@Overrideprotected void onActivityResult(int requestCode int resultCode Intent data) {       Log.i( ""MakeMachine""resultCode: "" + resultCode );    switch( resultCode )    {        case 0:            Log.i( ""MakeMachine""User cancelled"" );            break;        case -1:            onPhotoTaken();            break;    }}protected void onPhotoTaken(){    Log.i( ""MakeMachine""onPhotoTaken"" );    _taken = true;    BitmapFactory.Options options = new BitmapFactory.Options();    options.inSampleSize = 4;    Bitmap bitmap = BitmapFactory.decodeFile( _path options );    _image.setImageBitmap(bitmap);    _field.setVisibility( View.GONE );}@Override protected void onRestoreInstanceState( Bundle savedInstanceState){    Log.i( ""MakeMachine""onRestoreInstanceState()"");    if( savedInstanceState.getBoolean( PhotoCaptureExample.PHOTO_TAKEN ) ) {        onPhotoTaken();    }}@Overrideprotected void onSaveInstanceState( Bundle outState ) {    outState.putBoolean( PhotoCaptureExample.PHOTO_TAKEN _taken );}}

解决方案

参考,这个应该能够满足你的要求:Android调用手机拍照,将拍照的图片放在指定文件夹中

解决方案二:
你那个代码应该就可以用,不过要注意要先创建这个目录就行。

解决方案三:
看下这个,可能对你有帮助

File mydir = context.getDir(""mydir"" Context.MODE_PRIVATE); //创建一个内部dir;File fileWithinMyDir = new File(mydirmyfile""); //在内部dir得到一个文件夹.FileOutputStream out = new FileOutputStream(fileWithinMyDir);

解决方案四:
如果你要创建文件夹,你应该在你的manifest文件中加下边的这个许可。

<uses-permission android:name=""android.permission.WRITE_EXTERNAL_STORAGE""/> <uses-permission android:name=""android.permission.CAMERA"" /><uses-feature android:name=""android.hardware.camera"" />  package com.test;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Bundle;import android.provider.MediaStore;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;public class CameraTest extends Activity {    protected Button _button;    protected ImageView _image;    protected TextView _field;    protected String _path;    protected boolean _taken;protected static final String PHOTO_TAKEN   = ""photo_taken""; @Override  public void onCreate(Bundle savedInstanceState)  {    super.onCreate(savedInstanceState);    setContentView(R.layout.camtest);    _image = ( ImageView ) findViewById( R.id.image );    _field = ( TextView ) findViewById( R.id.field );    _button = ( Button ) findViewById( R.id.button );    _button.setOnClickListener( new ButtonClickHandler() );   // _path = Environment.getExternalStorageDirectory() + ""/NewFolder/""+System.currentTimeMillis()+"".jpg"";    _path = ""/sdcard/NewFolder/test1.jpg"";    String dir = ""/sdcard/NewFolder/"";    File imageDirectory = new File(dir);    imageDirectory.mkdirs();   /* File dir = new File(_path );    try{      if(dir.mkdir()) {         System.out.println(""Directory created"");      }       else {         System.out.println(""Directory is not created"");      }}      catch(Exception e){    }  */}public class ButtonClickHandler implements View.OnClickListener {    public void onClick( View view ){        Log.i(""MakeMachine""ButtonClickHandler.onClick()"" );        startCameraActivity();    }}protected void startCameraActivity(){    Log.i(""MakeMachine""startCameraActivity()"" );    File file = new File( _path );    Uri outputFileUri = Uri.fromFile( file );    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );    intent.putExtra( MediaStore.EXTRA_OUTPUT outputFileUri );    startActivityForResult( intent 0 );}@Overrideprotected void onActivityResult(int requestCode int resultCode Intent data) {       Log.i( ""MakeMachine""resultCode: "" + resultCode );    switch( resultCode )    {        case 0:            Log.i( ""MakeMachine""User cancelled"" );            break;        case -1:            onPhotoTaken();            break;    }}protected void onPhotoTaken(){    Log.i( ""MakeMachine""onPhotoTaken"" );    _taken = true;    BitmapFactory.Options options = new BitmapFactory.Options();    options.inSampleSize = 4;    Bitmap bitmap = BitmapFactory.decodeFile( _path options );    _image.setImageBitmap(bitmap);    _field.setVisibility( View.GONE );}}

这个在我这是好的,你看一下,希望对你有帮助。

时间: 2024-09-12 13:24:00

android-怎么在电话记忆卡里创建文件夹然后保存图像?的相关文章

android中创建文件夹。。。。。

问题描述 android中创建文件夹..... #android中不能创建文件夹,哪里都不能! 调试返回结果底下三个全是false void createFile(File onClickFile, String fileName) { File f = new File(onClickFile.getAbsolutePath(), fileName); if (!f.exists()) { try { if (f.mkdirs()) { Toast.makeText(listActivity,

android 创建文件夹,文件需要注意的格式

今天在做保存图片的时候出了一个02-03 09:46:25.687: W/System.err(1672): java.io.IOException: open failed: EINVAL (Invalid argument)  这样一个错误,查了下资料才知道是android中创建文件夹文件名的时候不能有冒号,也不能有空格.记录一下

软件开发-安卓 无法在sd咔创建文件夹,创建文件就可以,请问怎么解决?

问题描述 安卓 无法在sd咔创建文件夹,创建文件就可以,请问怎么解决? 先上一段创建文件夹的代码: if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { File f=Environment.getExternalStorageDirectory(); try { str = f.getCanonicalPath() + "/mytest"; if (!f.exists()) f.mk

巧用Excel快速批量创建文件夹

由于工作需要,经常要来创建一些人名的文件夹,一个一个创建非常麻烦,其实我们可以通过Excel来批量创建文件夹. 第一步.首先打开Excel创建一个新的工作表,在表格中的A列输入"md "(后面有个空格),B列输入要创建的文件夹 的路径,C列输入文件夹的名称,这里可以通过手动或者复制粘贴来输入人名. 第二步.在D列输入 "=A1&B1&C1",再拉单元格右下角的锚点,使其下面的表格自动填充. 第三步.创建一 个文本文件,把D列的内容复制到文本文件里,并

Excel 批量创建文件夹

由于工作的需要,一些朋友经常会需要创建一些人名的文件夹,一个一个创建文件夹实在非常麻烦,其实,可以有简便的方法,今天小编就告诉你如何巧用Excel,来批量创建人名文件夹. 操作步骤如下: 第一步,先打开Excel,创建一个新的工作表,在表格中的A列输入"md "(后面有个空格),在B列输入要创建的文件夹的路径,C列输入文件夹的名称,这里可以通过手动或者复制粘贴的方法来输入人名.  第二步,接着,在D列输入"=A1&B1&C1",然后拉单元格右下角的锚

电脑C盘里的文件夹的作用及用途

  Documents and Settings是什么文件? 答案:是系统用户设置文件夹,包括各个用户的文档.收藏夹.上网浏览信息.配置文件等. 补充:这里面的东西不要随便删除,这保存着所有用户的文档和账户设置,如果删除就会重新启动不能登陆的情况,尤其是里面的default user.all users.administrator和以你当前登陆用户名的文件夹. Favorites是什么文件? 答案:是收藏夹,存放你喜欢的网址.可以在其中放网址快捷方式和文件夹快捷方式,可以新建类别(文件夹). P

C盘里的文件夹各有什么作用

  Documents and Settings是什么文件? 答案:是系统用户设置文件夹,包括各个用户的文档.收藏夹.上网浏览信息.配置文件等. 补充:这里面的东西不要随便删除,这保存着所有用户的文档和账户设置,如果删除就会重新启动不能登陆的情况,尤其是里面的default user.all users.administrator和以你当前登陆用户名的文件夹. Favorites是什么文件? 答案:是收藏夹,存放你喜欢的网址.可以在其中放网址快捷方式和文件夹快捷方式,可以新建类别(文件夹). P

手机文件控制-pc和手机通过usb连接时,怎么设计一个android程序让电脑读出指定的文件夹。

问题描述 pc和手机通过usb连接时,怎么设计一个android程序让电脑读出指定的文件夹. pc和手机通过usb连接时,怎么设计一个android程序让电脑读出指定的文件夹 解决方案 类似各种手机助手 android上跑一个server,电脑上跑client,之间通过adb等通信 解决方案二: 通过USB也可以模拟成网络,通过Socket完成服务器与客户端的通讯.这种方式需要在设置里设置一下,网络中. 解决方案三: 这个需要在手机上安装个App吧

android-在红米上创建文件夹,创建不了

问题描述 在红米上创建文件夹,创建不了 android 在红米上,红米的系统是4.4.4的,创建文件夹,但是创建不了. 解决方案 没有code,实在很难分析 确定你的路径是对的 另外manifest file中,确定你加了 如果你是用外部SD卡 内部的没有系统权限你是肯定不行的 解决方案二: 查看返回的失败错误信息,是否没有权限.或者你的apk中没有申请对应权限 解决方案三: 亲 创建文件夹 不ROOT也应该可以 估计是你的系统出问题了 找人刷一下吧 最起码ROOT 后 啥都可以自己玩 解决方案