【问题标题】:Store captured images in a specific file将捕获的图像存储在特定文件中
【发布时间】:2013-12-26 06:40:44
【问题描述】:

我可以使用我的相机并通过以下方式拍照:

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";

但所有图像都保存在“相机”文件夹中。感谢您的帮助。

【问题讨论】:

    标签: android path sd-card capture


    【解决方案1】:

    在 SD 卡中创建您自己的文件夹,然后将文件 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));
    

    【讨论】:

      【解决方案2】:

      参考Android的培训-Taking Photos Simply

          Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
          intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
      

      是将图像保存到自定义文件路径的唯一方法。所以你应该做什么: 1.检查你是否有正确的保存文件夹 2.尝试移除你的sdcard以验证你的代码是否可以工作 3.你的ROM是定制的吗? 3rd-party ROM 可能无法正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多