Android 在照相机活动中将图像从drawable保存到SD卡

Android 在照相机活动中将图像从drawable保存到SD卡,android,image,camera,save,drawable,Android,Image,Camera,Save,Drawable,我正在做一个项目,通过ImageView从drawable文件夹中读取图像文件,并通过 ImageView view = (ImageView) findViewById(R.id.imageView); view.setOnTouchListener(this); buttonTakePicture = (Button) findViewById(R.id.takepicture); buttonTakePicture.setOnClickListener(new Button.OnClick

我正在做一个项目,通过ImageView从drawable文件夹中读取图像文件,并通过

ImageView view = (ImageView) findViewById(R.id.imageView);
view.setOnTouchListener(this);
buttonTakePicture = (Button) findViewById(R.id.takepicture);
buttonTakePicture.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        camera.takePicture(myShutterCallback, myPictureCallback_RAW,
            myPictureCallback_JPG);
现在按下拍照按钮后,图像应该保存在SD卡中,它正在拍摄快照,但没有保存图像,代码如下

File file = new File(mScreenshotPath + "/" + System.currentTimeMillis() + ".jpg");
FileOutputStream fos;
try {
    imageFileOS = getContentResolver().openOutputStream(uriTarget);
    imageFileOS.write(arg0);
    imageFileOS.flush();
    imageFileOS.close();
    fos = new FileOutputStream(file);
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
    fos.close();
    Toast.makeText(AndroidCamera.this,
            "Image saved: " + uriTarget.toString(),
            Toast.LENGTH_LONG).show();

请帮我解决这个问题……提前谢谢你,你可以在Android中保存照片,而不需要输出流和所有其他逻辑。这里有一个简单的食谱,它将做什么,我认为你正试图实现。请特别注意其意图以及如何使用它来设置图像的保存,因为我认为这是您出错的地方

public class PhotoActivity extends Activity implements OnClickListener {

private Button takePicture;
private String path;
private File imageFile;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    takePicture = (Button) findViewById(R.id.button1);
    takePicture.setOnClickListener(this);

    path = Environment.getExternalStorageDirectory() + "/my_image.png";
    imageFile = new File(path);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1:
        Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        Uri uri = Uri.fromFile(imageFile);
        i.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        startActivity(i);
        break;
    }
}
}

您可以在Android中保存照片,而不需要输出流和所有其他伴随它的逻辑。这里有一个简单的食谱,它将做什么,我认为你正试图实现。请特别注意其意图以及如何使用它来设置图像的保存,因为我认为这是您出错的地方

public class PhotoActivity extends Activity implements OnClickListener {

private Button takePicture;
private String path;
private File imageFile;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);
    takePicture = (Button) findViewById(R.id.button1);
    takePicture.setOnClickListener(this);

    path = Environment.getExternalStorageDirectory() + "/my_image.png";
    imageFile = new File(path);
}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.button1:
        Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
        Uri uri = Uri.fromFile(imageFile);
        i.putExtra(MediaStore.EXTRA_OUTPUT, uri);

        startActivity(i);
        break;
    }
}
}

非常有用的,非常有用的。