2013-09-18 1 views
0

В настоящее время я использую этот код в своем приложении, чтобы пользователи могли делать снимок. Но как изменить код, чтобы после того, как пользователи захватили фотографию, она будет переименована в имя " xxxx01.jpg "?Android: переименование изображений с камеры

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.photo); 

    _image = (ImageView) findViewById(R.id.image); 
    _field = (TextView) findViewById(R.id.field); 
    _button = (Button) findViewById(R.id.button); 
    _button.setOnClickListener(new ButtonClickHandler()); 

    _path = Environment.getExternalStorageDirectory() 
      + "/images/make_machine_example.jpg"; 
} 

public class ButtonClickHandler implements View.OnClickListener { 
    @Override 
    public void onClick(View view) { 
     Log.i("MakeMachine", "ButtonClickHandler.onClick()"); 
     startCameraActivity(); 
    } 
} 

protected void startCameraActivity() { 
    Log.i("MakeMachine", "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); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.i("MakeMachine", "resultCode: " + resultCode); 
    switch (resultCode) { 
    case 0: 
     Log.i("MakeMachine", "User cancelled"); 
     break; 

    case -1: 
     onPhotoTaken(); 
     break; 
    } 
} 

protected void onPhotoTaken() { 
    Log.i("MakeMachine", "onPhotoTaken"); 

    _taken = true; 

    BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inSampleSize = 4; 

    Bitmap bitmap = BitmapFactory.decodeFile(_path, options); 

    _image.setImageBitmap(bitmap); 

    _field.setVisibility(View.GONE); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    Log.i("MakeMachine", "onRestoreInstanceState()"); 
    if (savedInstanceState.getBoolean(PhotoCaptureExample.PHOTO_TAKEN)) { 
     onPhotoTaken(); 
    } 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    outState.putBoolean(PhotoCaptureExample.PHOTO_TAKEN, _taken); 
} 
} 

ответ

0

Попробуйте это.

//camera stuff 
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 

//folder stuff 
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
imagesFolder.mkdirs(); 

filePath = "/MyImages/QR_" + timeStamp + ".png" ; 
File image = new File(imagesFolder, "QR_" + timeStamp + ".png"); 
Uri uriSavedImage = Uri.fromFile(image); 

imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

Taken From Here.