2013-12-26 3 views
0

Я могу использовать мою камеру и делать снимки с помощью ниже:Хранить отснятые изображения в определенном файле

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

Создайте свою собственную папку на 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)); 
0

Обратитесь к обучению Android-Taking Photos Simply.

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

- это единственный способ сохранить изображение в пользовательском пути к файлу. так что вы должны сделать: 1. проверьте, есть ли у вас правильная папка сохранения 2. попытайтесь удалить свою SD-карту, чтобы проверить, может ли ваш код работать 3. Подходит ли ваш ПЗУ? стороннее ПЗУ может работать неправильно.