2013-05-04 72 views
1

我已经创建了一个android应用程序,它将捕获图片并保存在sdcard文件夹中,现在我想用自定义名称保存图像。在android中用相机捕获图像并保存为自定义名称

import java.io.ByteArrayOutputStream; 
import android.view.Menu; 
import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Bitmap; 
import android.os.Bundle; 
import android.provider.MediaStore; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 

    private static final int CAMERA_REQUEST = 1888; 
    private ImageView imageView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     this.imageView = (ImageView) this.findViewById(R.id.imageView1); 
     Button photoButton = (Button) this.findViewById(R.id.button1); 

     photoButton.setOnClickListener(new View.OnClickListener() 
     { 

      @Override 
      public void onClick(View v) 
      { 

       Intent cameraIntent = new Intent(
         android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
         MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath()); 
       cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, "new-photo-name.jpg"); 
       startActivityForResult(cameraIntent, CAMERA_REQUEST); 
      } 
     }); 
    } 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) 
     { 
      Bitmap photo = (Bitmap) data.getExtras().get("data"); 
      imageView.setImageBitmap(photo); 
      MediaStore.Images.Media.insertImage(getContentResolver(), photo, 
        null, null); 

      ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
      photo.compress(Bitmap.CompressFormat.JPEG, 100, baos); 
      byte[] b = baos.toByteArray(); 

     } 
    } 

这里是我已经用于捕捉图像,并将它们保存在SD卡文件夹中的代码,请帮我保存图像与如特定名称:android.jpeg

+1

http://stackoverflow.com/questions/5430527/how-to-launch-the-camera-and-take-a-picture。已经搜索过吗? – Raghunandan 2013-05-04 13:23:26

+0

你想为保存的图片指定一个通用名称吗? – kabuto178 2013-05-04 13:28:49

+0

我想用一个特定的名称保存图片名称,例如:android.jpeg – coolboy 2013-05-04 13:32:50

回答

1
File outFile = new File(Environment.getExternalStorageDirectory(), "myname.jpeg"); 
FileOutputStream fos = new FileOutputStream(outFile); 
photo.compress(Bitmap.CompressFormat.JPEG, 100, fos); 
fos.flush(); 
fos.close(); 

您还需要在Android Manifest中添加权限。

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

的片段将节省的photo/sdcard内容与名称"myname.jpeg"

+1

谢谢,这一个工作:) – coolboy 2013-05-04 15:40:45

0

你需要把文件名作为意向额外 -

cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, "android.jpg"); 
+0

我已经尝试过,但没有工作。 – coolboy 2013-05-04 13:40:24

0

this文章也许有用,试试吧。

& this以及他使用日期作为默认名称的唯一不同。 改变它。

它通常工作:)

相关问题