android-如何捕捉图像并保存在文件夹中

问题描述

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

下面的代码是用于捕捉一个图像,并将它保存到手机图像目录。如何修改代码在内存中创建一个新的文件夹,然后再保存捕捉的图像,再在主屏中显示所有的图像。

package makemachine.android.examples;

import java.io.File;
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 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() + "/images
  /make_machine_example.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);

    _field.setVisibility( View.GONE );
}

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

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

解决方案

创建一个 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" />
时间: 2024-08-22 09:07:30

android-如何捕捉图像并保存在文件夹中的相关文章

android studio-ksoap2应该放在androidstdio的哪个文件夹中使用

问题描述 ksoap2应该放在androidstdio的哪个文件夹中使用 求androidstdio高手指教,想开发webservice方面的东西

xml-如何访问 drawable 文件夹中的图像?

问题描述 如何访问 drawable 文件夹中的图像? 我使用一个XML 文件来显示一个""About"" 页面.这个XML文件是在assets文件夹中,使用一个WebView 布局显示.我想使用 css 来给这个xml文件设置背景图像.这个图像是在 drawable-mdpi 文件夹中.如何访问这个图像? <style type=""text/css"">body{background-image:url('pa

ios-iPhone-从文件夹中显示图片

问题描述 iPhone-从文件夹中显示图片 显示保存在文件夹中的图片.只返回了文件名字,没显示. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString*patientlastName; NSString*test=@"nicej

用ckeditor上传图片 图片已经上传到服务器 在服务器文件夹中也能找到 上传栏中也显示返回的地址 但 图像中 源文件地址为空 整么将上传返回的图片

问题描述 用ckeditor上传图片图片已经上传到服务器在服务器文件夹中也能找到上传栏中也显示返回的地址但图像中源文件地址为空怎么将上传返回的图片显示出来?谢谢 解决方案 解决方案二:保存图片的时候,连同路径一块保存,然后读取路径显示

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

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

Android获取assets文件夹中的数据并写入SD卡示例_Android

本文示例主要实现了Android获取assets文件夹中的数据并将其写入到SD卡中,该程序实现的步骤主要为:首先读取assets文件夹中的数据库,再将其写入到SD存储卡中. 完整示例代码如下: import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import android.content.Context; /*将assets文件

android怎么从服务器的一个存放图片的文件夹中下载其中所有的图片,已知文件夹的url

问题描述 android怎么从服务器的一个存放图片的文件夹中下载其中所有的图片,已知文件夹的url android怎么从服务器的一个存放图片的文件夹中下载其中所有的图片,已知文件夹的url 解决方案 只要这个url和图片信息(比如名字)能组成有效的url就行了,然后再返回一个图片的名字列表,遍历下载就行了 解决方案二: QT下实现将图片从一个文件拷贝到另一个文件夹把存储在数据库的图片导入到一个文件夹 解决方案三: 考慮安裝一下 ""抓圖神器"" 這個APP應該就可以

将图片保存到一个新的文件夹中

今天要把项目中的图片保存到一个新建的文件夹中: (1)  创建新的文件夹 public void CreateFile() { String status1 = Environment.getExternalStorageState();if (status1.equals(Environment.MEDIA_MOUNTED)) { //判断有没有sd卡 sDir = SDCARD_DIR;} else {sDir = NOSDCARD_DIR;} // 然后是创建文件夹File destDir

ueditor post一个参数作为图片保存的文件夹

问题描述 ueditor post一个参数作为图片保存的文件夹 asp.net与ueditor,传一个参数作为图片保存的文件夹,如何post这个参数,如何读取这个参数 var myeditor = UE.getEditor('txtContentbody', { toolbars: [['Source']], autoClearinitialContent: false, elementPathEnabled: false, initialFrameWidth: 500, initialFram