我可以使用相机并通过以下方式拍照:
public class ImportCard extends Activity {
ImageButton importimage;
Button btnglry, btnqr;
boolean taken;
String path;
protected static final String PHOTO_TAKEN = "photo_taken";
static Uri capturedImageUri=null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_import_card);
path = Environment.getExternalStorageDirectory() + "/MapCards/"+System.currentTimeMillis()+".jpg";
String dir = Environment.getExternalStorageDirectory().getPath();
File imageDirectory = new File(dir);
imageDirectory.mkdirs();
importimage = (ImageButton)findViewById(R.id.importimage);
importimage.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
startCameraActivity();
}
});
}
protected void 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);
}
protected void onPhotoTaken()
{
// Log.i( "MakeMachine", "onPhotoTaken" );
taken = true;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
}}
此方法有效。但是我希望我捕获的图像保存在默认目标文件夹中,例如“MapCards”(如果没有文件夹,则创建)。这与某事有关,
path = Environment.getExternalStorageDirectory() + "/MapCards/"+System.currentTimeMillis()+".jpg";
但所有图像都保存在“相机”文件夹中。谢谢你的帮助。
答案 0 :(得分:0)
在SD卡中创建自己的文件夹&然后通过相机意图传递File Uri。这段代码应该可以解决问题。
String SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory() + File.separator + "tempImage.jpg";
File file =new File(SD_CARD_TEMP_DIR);
takePictureFromCameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
答案 1 :(得分:0)
请参阅Android的培训 - Taking Photos Simply。
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
是将图像保存到自定义文件路径的唯一方法。所以你应该做的: 1.检查您是否有正确的保存文件夹 2.尝试删除您的SD卡以验证您的代码是否可以正常工作 你的ROM是定制的吗?第三方ROM可能效果不佳。