Android 如何捕获图像并保存在文件夹中

Android 如何捕获图像并保存在文件夹中,android,Android,这是我的代码,它拍摄图像并保存在手机图像目录中。如何修改此代码以在内存中创建一个新文件夹并将捕获的图像保存在那里,以及在主屏幕中显示所有图像。我跟着 在ExternalStorage中创建一个您希望的特殊目录,并将所有文件保存到该文件夹中。从该文件夹中检索所有文件并在Listview或Gridview中显示它们。最好使用currentTimeInMillis()生成文件名,因为您希望显示多个图像,但使用相同的目录 _path = Environment.getExternalStorageDir

这是我的代码,它拍摄图像并保存在手机图像目录中。如何修改此代码以在内存中创建一个新文件夹并将捕获的图像保存在那里,以及在主屏幕中显示所有图像。我跟着


在ExternalStorage中创建一个您希望的特殊目录,并将所有文件保存到该文件夹中。从该文件夹中检索所有文件并在Listview或Gridview中显示它们。最好使用currentTimeInMillis()生成文件名,因为您希望显示多个图像,但使用相同的目录

_path = Environment.getExternalStorageDirectory() + "/images 
  /make_machine_example.jpg";
用线下代替线上

_path = Environment.getExternalStorageDirectory() + "/images 
  /"+System.currentTimeMillis()+".jpg";
正在添加用于创建目录的代码:

File dir = new File("path/to/your/directory");
try{
  if(dir.mkDir()) {
     System.out.println("Directory created");
  } else {
     System.out.println("Directory is not created");
}catch(Exception e){
  e.printStacktrace();
}
不要忘记添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

他们在ExternalStorage中创建一个您想要的特殊目录,并将所有文件保存到该文件夹中。从该文件夹中检索所有文件并在Listview或Gridview中显示它们。最好使用currentTimeInMillis()生成文件名,因为您希望显示多个图像,但使用相同的目录

_path = Environment.getExternalStorageDirectory() + "/images 
  /make_machine_example.jpg";
用线下代替线上

_path = Environment.getExternalStorageDirectory() + "/images 
  /"+System.currentTimeMillis()+".jpg";
正在添加用于创建目录的代码:

File dir = new File("path/to/your/directory");
try{
  if(dir.mkDir()) {
     System.out.println("Directory created");
  } else {
     System.out.println("Directory is not created");
}catch(Exception e){
  e.printStacktrace();
}
不要忘记添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

此代码正在运行

public class MainActivity extends ActionBarActivity {

    protected Button _button;
    protected ImageView _image;
    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.activity_main);

        _image = ( ImageView ) findViewById( R.id.imageView );
        _button = ( Button ) findViewById( R.id.buttonCapture );
        _button.setOnClickListener((android.view.View.OnClickListener) new ButtonClickHandler());

        _path = Environment.getExternalStorageDirectory() + "/MyFolder/"+System.currentTimeMillis()+".jpg";
    }

    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 );
    }

    @Override
    protected 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);


    }

    @Override
    protected void onRestoreInstanceState( Bundle savedInstanceState){
        Log.i( "MakeMachine", "onRestoreInstanceState()");
        if( savedInstanceState.getBoolean( MainActivity.PHOTO_TAKEN ) ) {
            onPhotoTaken();
        }
    }

    @Override
    protected void onSaveInstanceState( Bundle outState ) {
        outState.putBoolean( MainActivity.PHOTO_TAKEN, _taken );
    }
}
此代码正在运行

public class MainActivity extends ActionBarActivity {

    protected Button _button;
    protected ImageView _image;
    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.activity_main);

        _image = ( ImageView ) findViewById( R.id.imageView );
        _button = ( Button ) findViewById( R.id.buttonCapture );
        _button.setOnClickListener((android.view.View.OnClickListener) new ButtonClickHandler());

        _path = Environment.getExternalStorageDirectory() + "/MyFolder/"+System.currentTimeMillis()+".jpg";
    }

    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 );
    }

    @Override
    protected 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);


    }

    @Override
    protected void onRestoreInstanceState( Bundle savedInstanceState){
        Log.i( "MakeMachine", "onRestoreInstanceState()");
        if( savedInstanceState.getBoolean( MainActivity.PHOTO_TAKEN ) ) {
            onPhotoTaken();
        }
    }

    @Override
    protected void onSaveInstanceState( Bundle outState ) {
        outState.putBoolean( MainActivity.PHOTO_TAKEN, _taken );
    }
}

否我关闭wana浏览我的手机图库保存图像我想为此应用程序创建新文件夹并保存在那里捕获图像Shelp me plz我如何在ph目录中创建新文件夹并将图像保存在那里嘿,创建目录是什么意思?不要在路径中拍照,而是使用任何创建目录的名称。我的意思是我想创建一个新文件夹“Myfolder”在手机内存中保存该文件夹中的所有捕获的图像我这样做了,但不是在内存中创建新文件夹,而是在该文件夹中保存图像在手机图像gellry\u path=Environment.getExternalStorageDirectory()+“/Myfolder/”+System.currentTimeMillis()+“.jpg”;否我关闭wana浏览我的手机图库保存图像我想为此应用程序创建新文件夹并保存在那里捕获图像Shelp me plz我如何在ph目录中创建新文件夹并将图像保存在那里嘿,创建目录是什么意思?不要在路径中拍照,而是使用任何创建目录的名称。我的意思是我想创建一个新文件夹“Myfolder”在手机内存中保存该文件夹中的所有捕获的图像我这样做了,但不是在内存中创建新文件夹,而是在该文件夹中保存图像在手机图像gellry\u path=Environment.getExternalStorageDirectory()+“/Myfolder/”+System.currentTimeMillis()+“.jpg”;